溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用tomcat方式實現(xiàn)websocket即時通訊服務端講解

發(fā)布時間:2020-06-21 01:13:15 來源:網(wǎng)絡 閱讀:313 作者:凱哥Java 欄目:開發(fā)技術

使用tomcat方式實現(xiàn)websocket即時通訊服務端講解

第一種方案:使用Tomcat的方式實現(xiàn)

tomcat版本要求:tomcat7.0+。需要支持Javaee7

導入javeee-api的jar(如果已經(jīng)引入可以忽略):

pom.xml中加入:

?<dependency>

??????<groupId>javax</groupId>

??????<artifactId>javaee-api</artifactId>

??????<version>7.0</version>

??????<scope>provided</scope>

?</dependency>

一:幾個重要的注解(方法):

1.1:@ServerEndpoin():

聲明這是一個websocket服務;

需要指定訪問該服務的地址。

在地址中可以指定參數(shù),需要使用{}進行占位。

注解使用位置:類上面

示例:

@ServerEndpoin("/websocket/{userId}")

public class myTest(){

}

1.2:@OnOpen:

該方法將在建立連接后執(zhí)行,會傳入session對象;

可以通過@PathParam來獲取url聲明中參數(shù)

注解使用位置:方法中

用法示例:

public void onOpen(Session session,@PathParam("userId") Integer userId) throws IOExcepthon{}

1.3:@OnClose:

該方法是在連接關閉后執(zhí)行的

注解位置:方法上

使用示例:

public void onClose(){}

1.4:@OnMessage:

該方法用于接收客戶端發(fā)來的消息

參數(shù):

message:發(fā)來的消息數(shù)據(jù)

session:會話對象(也即是通道)

注解位置:方法

示例用法:

public void onMessage(String message,Session session) throws IOException{}

1.5:@OnError:

出錯的時候訪問的。

注解位置:方法上

使用示例:

public void onError(Session session,Throwable error){}

1.6:給客戶端返回消息(或是給客戶端發(fā)送消息):

使用session對象的getBasinRemoter().sendTest()方法

用法示例:

session.getBasicRemoter().sendText("您發(fā)送的消息已經(jīng)收到了");

二:根據(jù)上面幾個重要方法,編寫客戶端代碼:

使用tomcat方式實現(xiàn)websocket即時通訊服務端講解

@OnOpen

public void onOpen(Session session, @PathParam("userName") String userName) throws IOException {

log.info("=== 打開連接了===");

session.getBasicRemote().sendText("歡迎:"+userName+"訪問系統(tǒng)");

}

使用tomcat方式實現(xiàn)websocket即時通訊服務端講解

@OnMessage

public void onMessage(String message,Session session, @PathParam("userName") String userName) throws IOException {

log.info("==接收到客戶端發(fā)來的消息是:{}",message);

session.getBasicRemote().sendText("您好:"+userName+" 您發(fā)送的消息"+message+",系統(tǒng)已經(jīng)收到....");

}

訪問效果:

使用tomcat方式實現(xiàn)websocket即時通訊服務端講解

說明:websocket訪問的協(xié)議是ws://而非http://

上圖中:橙色的是我發(fā)送的,下面對應的就是系統(tǒng)返回的。

查看服務器日志打?。?/p>

使用tomcat方式實現(xiàn)websocket即時通訊服務端講解

我們可以看到,通信已經(jīng)建立了。代碼已經(jīng)放在git上了。歡迎大家一起學習。

下節(jié)預告:下節(jié)我們將使用spring框架來整合websocket的


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI