日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

springboot整合websocket實現群聊思路代碼詳解

瀏覽:25日期:2023-03-08 17:18:40
實現思路

springboot整合websocket實現群聊思路代碼詳解

發送者向服務器發送大家早上好。其它客戶端可以收到對應消息。

項目展示

springboot整合websocket實現群聊思路代碼詳解

通過springboot引入websocket,實現群聊,通過在線websocket測試進行展示。

核心代碼pom引入jar

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.10.RELEASE</version><relativePath/> <!-- lookup parent from repository --> </parent> <properties><java.version>1.8</java.version> </properties> <dependencies><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId></dependency><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId></dependency><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version></dependency> </dependencies>

使用springboot 2.3.10.RELEASE版本;java8

WebSocketConfig配置類

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

websocket有4個注解,解釋如下

@OnOpen 有新連接 @OnMessage 有新消息時 @OnClose 關閉連接 @OnError 連接異常

對于這個4個注解,配置在方法上即可。

WebsocketServerEndpoint接收類

@Slf4j@Controller@ServerEndpoint ('/')public class WebsocketServerEndpoint{ @OnOpen public void onOpen(Session session, EndpointConfig config) { log.info('[onOpen][session({}) 接入]', session); WebSocketUtil.broadcast (session.getId ()+'上線了'); WebSocketUtil.addSession (session); } @OnMessage public void onMessage(Session session, String message) { WebSocketUtil.broadcast (message); log.info('[onOpen][session({}) 接收到一條消息({})]', session, message); // 生產環境下,請設置成 debug 級別 } @OnClose public void onClose(Session session, CloseReason closeReason) { WebSocketUtil.removeSession (session); WebSocketUtil.broadcast (session.getId ()+'下線了'); log.info('[onClose][session({}) 連接關閉。關閉原因是({})}]', session, closeReason); } @OnError public void onError(Session session, Throwable throwable) { log.info('[onClose][session({}) 發生異常]', session, throwable); }}WebSocketUtil工具類

@Slf4jpublic class WebSocketUtil{ // ========== 會話相關 ========== /** * Session 與用戶的映射 */ private static final Map<String, Session> SESSION_USER_MAP = new ConcurrentHashMap<> (); /** * 添加 Session 。在這個方法中,會添加用戶和 Session 之間的映射 * * @param session Session */ public static void addSession(Session session) {// 更新 SESSION_USER_MAPSESSION_USER_MAP.put(session.getId (), session); } /** * 移除 Session 。 * * @param session Session */ public static void removeSession(Session session) {// 從 SESSION_USER_MAP 中移除 SESSION_USER_MAP.remove(session.getId ()); } // ========== 消息相關 ========== /** * 廣播發送消息給所有在線用戶 * * @param message 消息體 * @param <T> 消息類型 */ public static <T extends Message> void broadcast(String message) {// 創建消息//String messageText = buildTextMessage(type, message);// 遍歷 SESSION_USER_MAP ,進行逐個發送for (String sessionId : SESSION_USER_MAP.keySet()) { sendTextMessage(SESSION_USER_MAP.get (sessionId), message);} } /** * 發送消息給單個用戶的 Session * * @param session Session * @param type 消息類型 * @param message 消息體 * @param <T> 消息類型 */ public static <T extends Message> void send(Session session, String type, T message) {// 創建消息String messageText = buildTextMessage(type, message);// 遍歷給單個 Session ,進行逐個發送sendTextMessage(session, messageText); } /** * 構建完整的消息 * * @param type 消息類型 * @param message 消息體 * @param <T> 消息類型 * @return 消息 */ private static <T extends Message> String buildTextMessage(String type, T message) {JSONObject messageObject = new JSONObject();messageObject.put('type', type);messageObject.put('body', message);return messageObject.toString(); } /** * 真正發送消息 * * @param session Session * @param messageText 消息 */ private static void sendTextMessage(Session session, String messageText) {if (session == null) { log.error('[sendTextMessage][session 為 null]'); return;}RemoteEndpoint.Basic basic = session.getBasicRemote();if (basic == null) { log.error('[sendTextMessage][session 的 為 null]'); return;}try { basic.sendText(messageText);} catch (IOException e) { log.error('[sendTextMessage][session({}) 發送消息{}) 發生異常', session, messageText, e);} }}

在線websocket調試輸入ws://localhost:8080/即可。

以上就是springboot整合websocket實現群聊思路代碼詳解的詳細內容,更多關于springboot整合websocket的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品二区三区| 亚洲一区二区日韩| 日韩高清在线观看一区二区| 99久久精品国产亚洲精品| 99热国内精品| 久久最新视频| 日韩成人一级| 精品国产一级| 91综合视频| 欧美va天堂在线| 蜜桃av一区二区在线观看| 日本午夜精品久久久久| 麻豆一区二区在线| 婷婷激情一区| 香蕉久久国产| 久久国产精品色av免费看| 国产成人精品一区二区三区免费| 久久九九精品| 日本欧美大码aⅴ在线播放| 久久中文字幕一区二区| 蜜桃精品在线| 亚洲制服欧美另类| 久久久91麻豆精品国产一区| 蜜桃av.网站在线观看| 亚洲一区二区三区免费在线观看| 青青伊人久久| 亚洲综合在线电影| 中文字幕亚洲精品乱码| 成人亚洲一区| 亚洲五月综合| 97精品国产| 亚洲精品影院在线观看| 日韩精品成人| 亚洲在线国产日韩欧美| 日韩av中文字幕一区| jizzjizz中国精品麻豆| 爽爽淫人综合网网站| 你懂的国产精品永久在线| 深夜视频一区二区| 日韩国产在线一| 在线日韩视频| 麻豆视频一区| 亚洲伊人精品酒店| 欧美aa在线观看| 久久激情综合网| 婷婷成人基地| 精品视频97| 婷婷精品在线| 国产精品av一区二区| 日韩国产欧美一区二区三区| 国产一区观看| 久久精品亚洲一区二区| 亚洲精品四区| 欧美a级一区| 久久精品二区亚洲w码| 在线国产日韩| 91精品福利| 日韩精品专区| 麻豆视频观看网址久久| 日本在线视频一区二区| 国产一区调教| 极品裸体白嫩激情啪啪国产精品| 国产日韩在线观看视频| 九色精品91| 麻豆国产欧美一区二区三区 | 欧美精品一二| 久久gogo国模啪啪裸体| 国产精品人人爽人人做我的可爱| 国产福利91精品一区二区| 日韩精品一级| 免费视频最近日韩| 午夜久久美女| 久久久精品午夜少妇| 久久精品国产精品亚洲毛片| 欧美日本二区| 红桃视频国产一区| 麻豆视频在线看| 国产精品伊人| 首页国产欧美久久| 99久久亚洲精品| 日本在线精品| 日韩一区电影| 麻豆mv在线观看| 国产成人精品一区二区三区免费| 国产精品日本一区二区三区在线| 日韩av中文在线观看| 四虎成人精品一区二区免费网站| 免费看黄色91| 丝袜诱惑制服诱惑色一区在线观看| 国模 一区 二区 三区| 婷婷激情一区| 国产专区一区| 欧美国产偷国产精品三区| 91午夜精品| 日韩有吗在线观看| 麻豆成人在线| 国产亚洲激情| 樱桃成人精品视频在线播放| 久久国产毛片| 欧美91精品| 日韩视频免费| 亚洲性色视频| 午夜久久tv| 一二三区精品| 国产精品一级在线观看| 久久69成人| 蜜桃av在线播放| 欧美va亚洲va日韩∨a综合色| 久久久久久黄| 国产一区成人| 91欧美日韩在线| 国产一区丝袜| 99久久夜色精品国产亚洲1000部| 日韩视频一区| 日韩精品视频一区二区三区| 日本强好片久久久久久aaa| 久久香蕉网站| 亚洲婷婷在线| 日韩激情中文字幕| 国产一区国产二区国产三区| 欧美性感美女一区二区| 只有精品亚洲| 精品三级av| 性欧美69xoxoxoxo| 一区二区日韩免费看| 国产精品亚洲综合久久| 亚洲综合电影| 老牛影视一区二区三区| 国产剧情一区二区在线观看| 日本不良网站在线观看| 免费久久99精品国产| 国产日本亚洲| 亚洲性色av| 免费在线视频一区| 你懂的亚洲视频| 自拍日韩欧美| 国产精品调教| 国产一区久久| 欧美久久香蕉| 久久青青视频| 丝袜美腿亚洲一区| 国产黄色一区| 免费国产自久久久久三四区久久 | 日韩在线a电影| 久久99蜜桃| 先锋影音久久久| 精品成人18| 日韩中文字幕不卡| 亚洲一区二区日韩| 日韩一区二区三区精品| 欧美激情亚洲| av亚洲免费| 久久精品资源| 亚洲精品日本| 久久九九国产| 国产精品久一| 美女黄网久久| 一区二区三区四区日本视频| 日韩高清在线一区| 黄色精品网站| yellow在线观看网址| 亚洲日本久久| 正在播放日韩精品| 日本麻豆一区二区三区视频| 欧美日韩尤物久久| 国产精品欧美大片| 美日韩精品视频| 香蕉视频亚洲一级| 久久三级中文| 国产毛片精品| 三级久久三级久久久| japanese国产精品| 色婷婷色综合| 欧美极品一区二区三区| 亚洲三级网站| 午夜精品亚洲| 久久美女性网| 国产一区二区三区日韩精品| 日韩高清欧美激情| 日韩专区欧美专区| 黄色成人精品网站| 性欧美精品高清| 日韩成人免费| 美女视频黄免费的久久| 日韩精品午夜视频| 亚洲综合另类| 一区二区三区视频免费观看| 国产suv精品一区二区四区视频| 91国内精品| 亚洲专区视频| 石原莉奈在线亚洲二区| 亚洲免费观看| 91精品久久久久久久久久不卡| 欧美精品第一区| 国产欧美在线| 国产欧美日韩视频在线 | 六月丁香综合| 夜久久久久久| 99riav1国产精品视频| 久久精品国产www456c0m|