Skip to content

WebSocket 长链接

WebSocket是一种在单个TCP连接上进行全双工通信的协议。支持给一人或多人推送信息以及全部推送信息。

1.添加依赖

html
<dependency>
    <groupId>com.hisense.pangea</groupId>
    <artifactId>pangea-common-websocket</artifactId>
    <version>2.8.3</version>
</dependency>

2.配置application.yml

js
pangea:
  websocket:
  	#以下参数为必要参数
    user-name: sys_user #服务端的userName,因为用的是set,每个客户端的username必须不一样,否则会被覆盖

3.WebSocket配置文件:

js
@Configuration
public class WebSocketConfig {  
    @Bean
    public ServerEndpointExporter serverEndpointExporter(){
        return new ServerEndpointExporter();
    }  
}

使用示例

js
/**
 * 个人信息推送(推送给一个或多个用户)
 * @return
 */
@RequestMapping("sendmsg")
@ResponseBody
public String sendmsg(String msg, String username){
    //第一个参数 :msg 发送的信息内容
    //第二个参数为用户长连接传的用户人数
    String[] persons = username.split(",");
    SocketServer.SendMany(msg,persons);
    return "success";
}
js
/**
 * 推送给所有在线用户
 * @return
 */
@RequestMapping("sendAll")
@ResponseBody
public String sendAll(String msg){
    SocketServer.sendAll(msg);
    return "success";
}