jeecg整合實現websocket

2021-08-28 01:26:46 字數 2312 閱讀 9706

在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...