日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jeecg集成实现websocket

發布時間:2025/3/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jeecg集成实现websocket 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? jeecg集成實現websocket在線聊天功能,使用layim作為在線聊天ui框架,java的websocket作為后臺服務。

? ? 在jeecg各風格的首頁引入layui.jsp這個文件為當前風格引入在線聊天功能,確保在jquery后引入,layim框架依賴于jquery。

? ? ?<%@include file="/context/layui.jsp"%>

? ? 在layui.jsp中引入了如下三個文件,layui.csslayui.js分別是layui框架的cssjs資源文件。config.js是實現在線聊天的配置文件。

? ? <link rel="stylesheet" href="content/chat/layui/css/layui.css">
? ? <script src="content/chat/layui/layui.js"></script>
? ? <script src="plug-in/layim/config.js"></script>

? ? 后臺服務通過jeecg-p3插件方式引入jeecg

? ? <dependency>
? ? ? ?<groupId>org.p3framework</groupId>
? ? ? ?<artifactId>jeecg-p3-biz-chat</artifactId>
? ? ? ?<version>1.0.0</version>
? ? ? ?<type>jar</type>
? ? ? ?<scope>compile</scope>
? ? </dependency>

?

? ? 當用戶登錄jeecg系統時,會通過jsWebSocket和后臺建立連接,首次連接是通過http方式、進行,后續消息發送通過tcp/ip方式。

? ? var socket = new WebSocket("ws://"+chatIp+":8080/jeecg/WebSocket/"+id);

? ? chatIp為當前服務器ip地址,id是當前登錄用戶的id標識,用來唯一區分連接用戶。

?

? ? 后臺通過一個靜態的map來存放連接用戶的idwebsocket對象,維護idwebsocket對象的關系,用以后續消息的定向發送。

? ? ? private static Map<String,WebSocket> webSocketHashMap = new HashMap<String, WebSocket>();

? ? 后臺的WebSocket處理類中主要有幾個方法:

? ? ? onOpen??連接建立成功調用的方法

? ? ? onClose 連接關閉調用的方法

? ? ? onMessage 收到客戶端消息后調用的方法

? ? ? onError 發生錯誤時調用

?

? ? 聊天功能初始化時獲得分組后的用戶列表

? ? ? init: {
? ? ? ? ??//url: '$!{basePath}/content/chat/demo/json/getList.json'
? ? ? ? ??url: 'chat/imController.do?getUsers'
? ? ? ? ??
,data: {}
? ? ? }

? ? ? ?

?

? ? admin想向test1發送信息,雙擊打開test1對話框。

? ? ?

? ? ?

? ? 在test1的頁面上會受到的信息提醒。

?

? ? 點開后就可以看到對話信息,雙方就可以進行交流了。

?

? ? 這樣的一個過程中,內部實現的方式是這樣的。

? ? 發送消息的時候,js中會監聽到發送信息的請求。

? ? ? layim.on('sendMessage', function(data){
? ? ? ? ??console.log(data);
? ? ? ? ??var mine = data.mine;
? ? ? ? ??var to = data.to;
? ? ? ? ??console.log(data);

? ? ? ? ??//更多情況下,一般是傳遞一個對象
? ? ? ? ??socket.send(JSON.stringify({
? ? ? ? ? ? ??type: 'friend' //隨便定義,用于在服務端區分消息類型
? ? ? ? ? ? ??,data: {"msg":mine.content,"from":mine.id,"to":to.id,"fromName":mine.username,"toName":to.username}
? ? ? ? ? }));
? ? ?});

? ? 方法接受一個參數,參數中有mineto等參數,可以得到發送人和接收人的信息,調用socket.send方法就可以將信息發送給后臺。后臺的接收方法會得到這個請求。

? ? /**
? ? ?* 收到客戶端消息后調用的方法
? ? ?*
? ? ?* @param message 客戶端發送過來的消息
? ? ?* @param session 可選的參數
? ? ?*/
? ? @OnMessage
? ? public void onMessage(String message, Session session) {
? ? ? ? System.out.println("來自客戶端的消息:" + message);
? ? ? ? JSONObject json = JSON.parseObject(message);
? ? ? ? JSONObject jsonObject = (JSONObject) json.get("data");
? ? ? ? String to = jsonObject.get("to").toString();
? ? ? ? String from = jsonObject.get("from").toString();
? ? ? ? String msg = jsonObject.get("msg").toString();
? ? ? ? String type = json.get("type").toString();
????try{
????????for(String key: webSocketHashMap.keySet()){
????????????if(key.equals(to)){
????????????????webSocketHashMap.get(key).sendMessage(message);
????????????}
????????}
????}catch (Exception e){
????????e.printStackTrace();
????}
}

? ? 解析出接收人id,然后對當前連接的websocket關系集合進行遍歷得到接收人的websocket對象,對這個websocket對象進行信息的發送。

? ? 信息發送后,test1頁面上js可以監聽到收到的信息。

//監聽收到的消息
socket.onmessage = function(res){
????var json = JSON.parse(res.data);
????var timestamp = new Date().getTime();
????layim.getMessage({
????????username: json.data.fromName //消息來源用戶名
????????,avatar: "http://tp1.sinaimg.cn/1571889140/180/40030060651/1" //消息來源用戶頭像
????????,id: json.data.from //聊天窗口來源ID(如果是私聊,則是用戶id,如果是群聊,則是群組id
????????,type: "friend" //聊天窗口來源類型,從發送消息傳遞的to里面獲取
????????,content: json.data.msg //消息內容
????????,timestamp: timestamp //服務端動態時間戳
????});
};

? ? 通過這種方式可以將接收到的信息顯示到對話框上。

總結

以上是生活随笔為你收集整理的jeecg集成实现websocket的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久国产成人精品国产成人亚洲 | 在线一二三区 | 色小妹av | 96在线观看 | 欧美视频91| 粉色视频免费 | 国产精品久久久一区二区三区 | 亚洲欧美日韩久久 | 免费毛片网站 | 国产又粗又大又长 | 亚洲视频在线观看免费 | 国产内射一区二区 | 亚洲成人中文字幕 | 国产九色91回来了 | 欧美激情免费在线 | 久久精品亚洲天堂 | 国产精品二区在线 | 鸥美毛片 | 男人天堂1024 | 成人国产欧美 | 香蕉成人网 | 肥臀av| 午夜一二三区 | 成人在线视频免费观看 | 日韩在线免费播放 | 国产精品剧情av | 美国一级黄色大片 | 中文字幕第12页 | 四虎av影院 | 欧美日韩1区2区3区 亚洲日本精品视频 | 超碰www| 免费的黄色大片 | 欧美精品做受xxx性少妇 | 国产精品久久久久电影 | 久久这里只有精品23 | 久草资源网站 | av免费观看不卡 | 国产一级片播放 | 日韩欧洲亚洲AV无码精品 | 爱爱综合网| 麻豆蜜桃wwww精品无码 | 久草福利免费 | 国产成人精品免费视频 | 亚洲精品日韩综合观看成人91 | 欧美一区二区三区粗大 | 天堂а√在线中文在线鲁大师 | 一级黄色短片 | 涩涩视频在线 | 日韩中文字幕一区 | 91精品推荐| 91叼嘿视频 | 狠狠人妻久久久久久综合 | 尤物在线观看视频 | 国产成人午夜高潮毛片 | 日韩极品视频在线观看 | 无码人妻精品一区二区三区温州 | 国语粗话呻吟对白对白 | 久久日精品 | 依依av| 国产中文在线观看 | 国产a三级 | 欧美人成在线视频 | 青青插| 天天干夜夜拍 | 国自产拍偷拍精品啪啪一区二区 | www.日韩欧美 | 夜间福利视频 | 色77777| 日韩精品色 | 91看片看淫黄大片 | 开心激情亚洲 | 夜夜骚视频 | 奇米精品一区二区三区在线观看一 | 男人天堂2020 | 999精品国产 | 99re99热 | 国产av无码专区亚洲精品 | 狠狠香蕉| 久久99精品国产麻豆婷婷 | av网站入口| 国产一区亚洲 | 国产裸体网站 | 欧洲成人一区二区三区 | 99国产精品久久久久久久成人 | 亚洲国产日韩欧美一区二区三区 | 久久久久黄色 | 日本小视频网站 | 性高潮久久久久 | 成av人片一区二区三区久久 | 久久国产精品免费看 | 精品国产视频一区二区三区 | 日本波多野结衣在线 | 欧美极品一区二区三区 | 影音先锋黄色网址 | 无码专区久久综合久中文字幕 | 999成人网| 日韩三级黄 | 同性色老头性xxxx老头 | 欧美a级大片 |