个人笔记
一。什么是WebSocket这里是引用
一个基于tcp的全双工实时通信协议(还有很多相似 sse spdy webrtc)
握手阶段还是利用http协议
可以一次握手持续通讯
Websocket 使用ws 或者 wss的统一资源标识符
wss代表加密
upgrade 协议升级
菜鸟教程图
pom配置
javax javaee-api7.0 provided org.java-websocket Java-WebSocket1.3.5
服务器端
@ServerEndpoint("/websocket/server/{userid}") public class WebSocketServer { //接收 长连接 : 存储长连接 static Mapsessions=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 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)