SpringBoot+Netty+Websocket整合案例(實現基本的聊天功能)

之前使用Springboot整合了websocket,實現了一個後端向前端推送信息的基本小案例,這篇文章主要是增加了一個新的框架就是Netty,實現一個高性能的websocket服務器,並結合前端代碼,實現一個基本的聊天功能。你可以根據自己的業務需求進行更改。

這裡假設你已經瞭解了Netty和websocket的相關知識,僅僅是想通過Springboot來整合他們。根據之前大家的需求,代碼已經上傳到了github上。在文末給出。

廢話不多說,直接看步驟代碼。

一、環境搭建

SpringBoot+Netty+Websocket整合案例(實現基本的聊天功能)

其實對於jar包版本的選擇,不一定按照我的來,只需要接近即可,最好的辦法就是直接去maven網站上去查看,哪一個版本的使用率最高,說明可靠性等等就是最好的。Idea我已經破解,需要的私聊我。

二、整合開發

建立一個項目,名字叫做SpringbootNettyWebSocket

1、添加依賴

SpringBoot+Netty+Websocket整合案例(實現基本的聊天功能)

2、在application.properties文件修改端口號

一句話:server.port=8081

3、新建service包,創建NettyServer類

SpringBoot+Netty+Websocket整合案例(實現基本的聊天功能)

這個類的代碼是模板代碼,最核心的就是ch.pipeline().addLast(new MyWebSocketHandler()),其他的如果你熟悉netty的話,可以根據自己的需求配置即可,如果不熟悉直接拿過來用。

4、在service包下創建MyWebSocketHandler核心處理類

SpringBoot+Netty+Websocket整合案例(實現基本的聊天功能)

在這個類裡面我們首先建立了一個channelGroup,每當有客戶端連接的時候,就添加到channelGroup裡面,我們可以發送消息給固定的人,也可以群發消息。

注意:有人說這個功能沒有實現後臺主動推送的功能。其實代碼寫到這一步,你可以使用定時器來實現定時推送的功能,另外為了解決跨域的問題,你也可以使用nginx配置反向代理。我這裡只是一個基本的功能,沒有使用nginx。

5、客戶端代碼

SpringBoot+Netty+Websocket整合案例(實現基本的聊天功能)


SpringBoot+Netty+Websocket整合案例(實現基本的聊天功能)

現在一切就緒,打開我們的服務器,然後再打開我們的網頁客戶端。看一下效果吧

SpringBoot+Netty+Websocket整合案例(實現基本的聊天功能)

同樣的服務器也是同樣的效果。這裡就不粘貼演示了。OK,這就是一個最基本的功能,所有的測試均在我自己的電腦上實現,如有問題還請指正


分享到:


相關文章: