精华内容
下载资源
问答
  • 通过WebSocket实现服务器主动推送 图像数据通过Base64编码,定义为Json格式传输 前端收到Json数据后 将图像还原 代码有任何问题可以和我联系 liangji@csu.ac.cn 一起学习,此外也可以看我的博客 博客有更详细的介绍...
  • packagecom.jeecg....importnet.sf.json.JSONObject;import javax.websocket.*;importjavax.websocket.server.PathParam;importjavax.websocket.server.ServerEndpoint;importjava.io.IOException;importjava...

    packagecom.jeecg.webSocket;importnet.sf.json.JSONObject;import javax.websocket.*;importjavax.websocket.server.PathParam;importjavax.websocket.server.ServerEndpoint;importjava.io.IOException;importjava.util.Map;importjava.util.concurrent.ConcurrentHashMap;

    @ServerEndpoint("/webSocket/{username}")public classWebSocket {private static int onlineCount = 0;private static Map clients = new ConcurrentHashMap();privateSession session;privateString username;

    @OnOpenpublic void onOpen(@PathParam("username") String username, Session session) throwsIOException {this.username =username;this.session =session;

    addOnlineCount();

    clients.put(username,this);

    System.out.println("已连接");

    }

    @OnClosepublic void onClose() throwsIOException {

    clients.remove(username);

    subOnlineCount();

    }

    @OnMessagepublic void onMessage(String message) throwsIOException {

    JSONObject jsonTo=JSONObject.fromObject(message);

    String mes= (String) jsonTo.get("message");if (!jsonTo.get("To").equals("All")){

    sendMessageTo(mes, jsonTo.get("To").toString());

    }else{

    sendMessageAll("给所有人");

    }

    }

    @OnErrorpublic voidonError(Session session, Throwable error) {

    error.printStackTrace();

    }public void sendMessageTo(String message, String To) throwsIOException {for(WebSocket item : clients.values()) {if(item.username.equals(To) )

    item.session.getAsyncRemote().sendText(message);

    }

    }public void sendMessageAll(String message) throwsIOException {for(WebSocket item : clients.values()) {

    item.session.getAsyncRemote().sendText(message);

    }

    }public static synchronized intgetOnlineCount() {returnonlineCount;

    }public static synchronized voidaddOnlineCount() {

    WebSocket.onlineCount++;

    }public static synchronized voidsubOnlineCount() {

    WebSocket.onlineCount--;

    }public static synchronized MapgetClients() {returnclients;

    }

    }

    展开全文
  • send(json_encode($entryData)); } </code></pre> <p>i need someone could help how can I do it dinamically without touch views, just controller and model because the own system will do it </div>
  • @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)在时间上面加入该注释,直接在application.yml配置是无法识别的

    @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)在时间上面加入该注释,直接在application.yml配置是无法识别的

    展开全文
  • 最近做自动化需要接收websocket消息来进行判断,做个总结: 使用websoket-client库,其git主页:https://github.com/websocket-client/websocket-client pip install websocket_...import json import time url = "ws:

    最近做自动化需要接收websocket消息来进行判断,做个总结:

    使用websoket-client库,其git主页:https://github.com/websocket-client/websocket-client

    pip install websocket_client
    

    代码在下面,注意:cookie要发送http登录请求去获取然后传给这边的接口

    from websocket import create_connection
    import json
    import time
    
    url = "ws://127.0.0.1:8080/test"
    header = ['Cookie: shiro.session=ffdsftedd-d234-2233;Path=/;HttpOnly, remem……']
    ws = create_connection(url, header=header)
    ws.send('login')  #发送握手消息
    end_time = time.time() + 10
    tmp_list = []
    while time.time() < end_time:  #接收10s数据
    	mes = ws.recv()
    	print(mes)
    	if json.loads(mes)["key"] == 'target': #拿自己想要的数据
    		tmp_list.append(json.loads(mes))  
    
    

    遇到的问题:

    1. 连接报错,如下图:WinError 10042 在getsockopt 或 setsockopt调用中指定一个未知的,无效的或不受支持的选项或层次
      这个是因为socket设置了一个默认的配置,而这个配置在windows某些版本不支持(我用的是win7不支持,其它不清楚)
      在这里插入图片描述
      解决办法:
      找到site-packages\websocket_socket.py文件,搜索TCP_KEEPCNT关键字,注释相关代码,如下图
      在这里插入图片描述

    2. 如何发送cookie
      开始我只是把cookie值填进去,用requests登录接口获取cookie发现送的不止是cookie值,还有其它,所以最好是发送登录接口获取cookie然后再赋给websocket。

    展开全文
  • 2、站内消息推送,比如打开qq时会提示xx用户已上线之类在app或者网站内部的消息。3、实时数据获取。比如地理位置,用户是否在线等需要实时获取的消息。4、解决http长轮询消耗服务器资源问题。需要使用的框架:1、gin...

    websocket应用场景:

    1、即时通信。比如QQ,微信这些。

    2、站内消息推送,比如打开qq时会提示xx用户已上线之类在app或者网站内部的消息。

    3、实时数据获取。比如地理位置,用户是否在线等需要实时获取的消息。

    4、解决http长轮询消耗服务器资源问题。

    需要使用的框架:

    1、gin框架:gin-gonic/gin

    2、websocket框架:gorilla/websocket

    3、api文档:

    https://godoc.org/github.com/gin-gonic/gin

    https://godoc.org/github.com/gorilla/websocket#Conn.ReadJSON

    示例代码:

    package main
    
    import (
    	"github.com/gin-gonic/gin"
    	"github.com/gorilla/websocket"
    	"net/http"
    )
    //设置websocket
    //CheckOrigin防止跨站点的请求伪造
    var upGrader = websocket.Upgrader{
    	CheckOrigin: func(r *http.Request) bool {
    		return true
    	},
    }
    
    //websocket实现
    func ping(c *gin.Context) {
    	//升级get请求为webSocket协议
    	ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
    	if err != nil {
    		return
    	}
    	defer ws.Close() //返回前关闭
    	for {
    		//读取ws中的数据
    		mt, message, err := ws.ReadMessage()
    		if err != nil {
    			break
    		}
    		//写入ws数据
    		err = ws.WriteMessage(mt, message)
    		if err != nil {
    			break
    		}
    	}
    }
    
    func main() {
    	r := gin.Default()
    	r.GET("/ping", ping)
    	r.Run(":12345")
    }
    

    测试:

    websocket请求地址:ws://localhost:12345/ping

    17d2fdf1b052af4c2ce7546ef2da5368.png

    实际应用中的分析:

    上面的例子只是实现了最基本的websocket功能,客户端发送消息,服务端接收到以后就按原样返回(json数据会作BASE64加密)。但在实际的项目中,需要处理的逻辑远比这个复杂。而且数据在传输过程中没有加密,因此在实际应用中,使用json加密后传输。客户端或服务端接收到的只是一串字符串,内部解密后再进行相应的业务逻辑处理。如果业务逻辑复杂,可以配合channel,redis,mysql等一起使用。

    参考文章:

    gin 框架中结合 gorilla 实现 webSocket - 链滴ld246.com
    a75e246a578c13dead121f70d11c7ba5.png
    展开全文
  • packagecom.jeecg....importnet.sf.json.JSONObject;import javax.websocket.*;importjavax.websocket.server.PathParam;importjavax.websocket.server.ServerEndpoint;importjava.io.IOException;importjava...
  • Springboot+websocket 单点推送

    千次阅读 2019-04-16 14:07:38
    之前一篇文章通过demo简单介绍了下Springboot 集成 websocket发送消息;因为工作需要,所以深入了解了下具体的使用方法;主要详情讲一对一的消息发送; 1.依赖环境配置 前端是使用的angualr,需要引入sockjs-...
  • 服务端采集嵌入式设备发送的报文信息,做入库,部分报文处理后推送设备,校时推送,及后期扩展的业务操作。 简单说明 嵌入式设备和服务端采用websocket的通信方式。为什么选用websocket?我觉得主要原因是由于...
  • https://blog.csdn.net/dhj393338/article/details/104637810 前端使用了vue框架,增加的代码比较简单如下: //在方法里调用 this.websocketsend()发送数据给服务器 ... this.websocketsend(JSON.string.
  • 一、socket服务端 websocket_util.py import socket import base64 import hashlib from threading import Thread import struct import copy import json import time from XX.redis_db import RedisDb from ...
  • WebSocket实现了消息推送、聊天室、客户端聊天;服务器端是用C#窗体写的(可以改成服务程序的);处理使用了HPSocket,连接数量HPSocket支持多少就支持多少连接数量,目测至少支持1万;网页端主要是以实现功能为主;...
  • 需求: 当用户进行某个操作,需要通知其他用户时,其他用户可以实时接收...用户登录系统→连接到socket服务进行监听→页面用户操作某业务→调用socket服务传递json消息→socket服务推送消息到其他用户页面→收到消...
  • 首先要使用composer来下载一个第三方扩展就可以实现php的websocket客户端,直接在当前目录生成下composer.json文件就可以了。 composer require textalk/websocket require('vendor/autoload.php'); use WebSocket\...
  • 整整踏了一周的坑,终于算是填上了,说到底还是tornado的框架不太成熟,而且各版本还存在很大的差异,先说我的环境 python==3.7 tornado==4.1 ...import json import tornado.httpserver import ...
  • 因为产品需求,要实现服务端推送消息至客户端,并且支持客户端对用户点对点消息发送的社交功能,目前市面上对消息推送的第三方支持很多,比如国产EasyGo和国外的一些,但基于收费,所以,以netty来实现。 废话不多说...
  • WebSocket

    2019-03-29 09:29:00
    WebSocket的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。 WebSocket模板 import json from flask import Flask...
  • import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.app.client.SubscriptionClient; import com.app.client.SubscriptionOptions; import com.app.client.model.Candlestick; ...
  • 首先要使用composer来下载一个第三方扩展就可以实现php的websocket客户端,直接在当前目录生成下composer.json文件就可以了composer require textalk/websocket require('vendor/autoload.php'); use WebSocket\...

空空如也

空空如也

1 2 3 4 5
收藏数 92
精华内容 36
关键字:

websocket推送json