在layui.jsp中引入了如下三個檔案,layui.css
和layui.js
分別是layui
框架的css和js
後台服務通過jeecg-p3
外掛程式方式引入
jeecg
org.p3framework
jeecg-p3-biz-chat
1.0.0
jarcompile
當使用者登入jeecg
系統時,會通過js的
websocket
和後台建立連線,首次連線是通過
方式、進行,後續訊息傳送通過
tcp/ip
方式。var socket = new websocket("ws://"+chatip+":8080/jeecg/websocket/"+id);
chatip為當前伺服器
ip位址,
id是當前登入使用者的
id標識,用來唯一區分連線使用者。
後台通過乙個靜態的map
來存放連線使用者的id和
websocket
物件,維護id和
websocket
物件的關係,用以後續訊息的定向傳送。
private static mapwebsockethashmap = new hashmap();
後台的websocket處理類中主要有幾個方法:
onopen連線建立成功呼叫的方法
onclose 連線關閉呼叫的方法
onmessage 收到客戶端訊息後呼叫的方法
onerror 發生錯誤時呼叫
聊天功能初始化時獲得分組後的使用者列表
admin想向
test1
傳送資訊,雙擊開啟
test1
對話方塊。
在test1
的頁面上會受到的資訊提醒。
點開後就可以看到對話資訊,雙方就可以進行交流了。
這樣的乙個過程中,內部實現的方式是這樣的。
傳送訊息的時候,js
中會監聽到傳送資訊的請求。
layim.on('sendmessage',function(data)
}));
});方法接受乙個引數,引數中有mine,to
等引數,可以得到傳送人和接收人的資訊,呼叫
socket.send
方法就可以將資訊傳送給後台。後台的接收方法會得到這個請求。
/***
收到客戶端訊息後呼叫的方法**
@param
message
客戶端傳送過來的訊息
*@param
session
可選的引數
*/@onmessage
public voidonmessage(string message, session session)
}}catch(exception e)
}解析出接收人id
,然後對當前連線的
websocket
關係集合進行遍歷得到接收人的
websocket
物件,對這個
websocket
物件進行資訊的傳送。
資訊傳送後,test1
頁面上js可以監聽到收到的資訊。 //
監聽收到的訊息
socket.onmessage =function(res));
};通過這種方式可以將接收到的資訊顯示到對話方塊上。
SpringBoot整合Quartz實現定時器
springboot quartz實現定時器,由於本人也是剛學習,不足之處請各位大神指正 1.pom配置 org.springframeworkgroupid spring context supportartifactid dependency org.springframeworkgroupid...
SpringMVC整合quartz,實現定時任務
org.quartz scheduler quartz 1.8.4 public class timetask 時間的配置如下 0 26 16 value 時間大小由小到大排列,從秒開始,順序為 秒,分,時,天,月,年 為任意 為無限制。由此上面所配置的內容就是,在每天的16點26分啟動znrwdb...
SpringBoot整合Redis實現快取
1.引入spring boot starter data redis依賴。org.springframework.boot spring boot starter data redis spring.redis.host 118.24.44.1693.使用redistemplate操作redis。r...