WebSocket的基础

WebSocket的基础,第1张

WebSocket的基础

个人笔记

这里是引用

一。什么是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
    

					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5435360.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存