SpringBoot+Netty+Websocket整合案例(3分鐘實(shí)現(xiàn)一個(gè)基本的聊天功能)

作者:愚公要移山
www.toutiao.com/i6775018273139327492/
之前使用Springboot整合了websocket,實(shí)現(xiàn)了一個(gè)后端向前端推送信息的基本小案例,這篇文章主要是增加了一個(gè)新的框架就是Netty,實(shí)現(xiàn)一個(gè)高性能的websocket服務(wù)器,并結(jié)合前端代碼,實(shí)現(xiàn)一個(gè)基本的聊天功能。你可以根據(jù)自己的業(yè)務(wù)需求進(jìn)行更改。
“這里假設(shè)你已經(jīng)了解了Netty和websocket的相關(guān)知識(shí),僅僅是想通過Springboot來整合他們。根據(jù)之前大家的需求,代碼已經(jīng)上傳到了github上。在文末給出。
”
廢話不多說,直接看步驟代碼。
一、環(huán)境搭建

其實(shí)對(duì)于jar包版本的選擇,不一定按照我的來,只需要接近即可,最好的辦法就是直接去maven網(wǎng)站上去查看,哪一個(gè)版本的使用率最高,說明可靠性等等就是最好的。Idea我已經(jīng)破解,需要的私聊我。
二、整合開發(fā)
建立一個(gè)項(xiàng)目,名字叫做SpringbootNettyWebSocket
1、添加依賴

2、在application.properties文件修改端口號(hào)
一句話:server.port=8081
3、新建service包,創(chuàng)建NettyServer類

這個(gè)類的代碼是模板代碼,最核心的就是ch.pipeline().addLast(new MyWebSocketHandler()),其他的如果你熟悉netty的話,可以根據(jù)自己的需求配置即可,如果不熟悉直接拿過來用。
4、在service包下創(chuàng)建MyWebSocketHandler核心處理類
在這個(gè)類里面我們首先建立了一個(gè)channelGroup,每當(dāng)有客戶端連接的時(shí)候,就添加到channelGroup里面,我們可以發(fā)送消息給固定的人,也可以群發(fā)消息。
注意:有人說這個(gè)功能沒有實(shí)現(xiàn)后臺(tái)主動(dòng)推送的功能。其實(shí)代碼寫到這一步,你可以使用定時(shí)器來實(shí)現(xiàn)定時(shí)推送的功能,另外為了解決跨域的問題,你也可以使用nginx配置反向代理。我這里只是一個(gè)基本的功能,沒有使用nginx。
5、客戶端代碼

現(xiàn)在一切就緒,打開我們的服務(wù)器,然后再打開我們的網(wǎng)頁客戶端。看一下效果吧
同樣的服務(wù)器也是同樣的效果。這里就不粘貼演示了。OK,這就是一個(gè)最基本的功能,所有的測(cè)試均在我自己的電腦上實(shí)現(xiàn),如有問題還請(qǐng)指正
好文章,我在看




