个人笔记
一。什么是WebSocket这里是引用
一个基于tcp的全双工实时通信协议(还有很多相似 sse spdy webrtc)
握手阶段还是利用http协议
可以一次握手持续通讯
Websocket 使用ws 或者 wss的统一资源标识符
wss代表加密
upgrade 协议升级
菜鸟教程图
pom配置
javax
javaee-api
7.0
provided
org.java-websocket
Java-WebSocket
1.3.5
服务器端
@ServerEndpoint("/websocket/server/{userid}")
public class WebSocketServer {
//接收 长连接 : 存储长连接
static Map sessions=new HashMap<>();// map做列表 直接mep。get(userID)
public String userid;
public Session session;
@OnOpen
public void onOpen(@PathParam("userid") String userid, Session session){
this.userid=userid;
this.session=session;
sessions.put(userid,this);
System.out.println("接收到请求:"+userid);
}
@OnClose
public void onClose(Session session){
sessions.remove(userid);
}
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("服务器收到客户端的消息:"+message);
String[] split = message.split("--");
String s = split[0];
message = split[1];
this.sendMessage(s,message);
}
//封装一个方法:服务器给客户端发消息
public void sendMessage(String userid,String message){
try {
sessions.get(userid).session.getBasicRemote().sendText(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端 2
<%--
Created by IntelliJ IDEA.
User: 15836
Date: 2021/11/8
Time: 9:23
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
客户端 1
<%--
Created by IntelliJ IDEA.
User: 15836
Date: 2021/11/8
Time: 9:23
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
效果图
注意 学习下 socket.io



