中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

鄭州網(wǎng)絡(luò)優(yōu)化實(shí)力樂云seo百度seo快速排名優(yōu)化軟件

鄭州網(wǎng)絡(luò)優(yōu)化實(shí)力樂云seo,百度seo快速排名優(yōu)化軟件,關(guān)于集團(tuán)網(wǎng)站建設(shè)的修改請示,太原在線網(wǎng)站制作前言 我最近一個(gè)月一直在尋找能夠快速開發(fā)實(shí)時(shí)通訊的簡單好用的模塊,所以我就去尋找了一下相關(guān)的內(nèi)容.在此之前我使用的是Spring原生的webSocket,她有個(gè)弊端就是設(shè)置組不容易設(shè)置,而且配置上也稍微復(fù)雜一點(diǎn),需要配置攔截器和處理器,還需要把它放入到Springboot的啟動(dòng)容器里面,也…

前言

我最近一個(gè)月一直在尋找能夠快速開發(fā)實(shí)時(shí)通訊的簡單好用的模塊,所以我就去尋找了一下相關(guān)的內(nèi)容.在此之前我使用的是Spring原生的webSocket,她有個(gè)弊端就是設(shè)置組不容易設(shè)置,而且配置上也稍微復(fù)雜一點(diǎn),需要配置攔截器和處理器,還需要把它放入到Springboot的啟動(dòng)容器里面,也有個(gè)好處就是,服務(wù)端口是單服務(wù)的,而且定制性強(qiáng),就是很多東西都需要自己來主動(dòng)配置,讓我頭疼的就是的配置
在此之后我就去找尋能讓我寫的代碼最少,而且還易用的服務(wù),就發(fā)現(xiàn)了TIO,下面先看一下簡介

TIO

極致打磨的底層集群能力,可無縫解決IM、物聯(lián)網(wǎng)等大型產(chǎn)品的集群需求
易學(xué)易用,讓剛畢業(yè)的大學(xué)生也能輕易駕馭
全方位開箱即用的監(jiān)控能力
實(shí)戰(zhàn)中仍表現(xiàn)出卓越的性能,不用實(shí)驗(yàn)室數(shù)據(jù)忽悠智慧的大眾
內(nèi)置協(xié)議適配能力,讓多協(xié)議接入不再難
內(nèi)置ack消息能力,讓RPC等場景輕松實(shí)現(xiàn)
自創(chuàng)同步鎖、同步安全線程池、同步數(shù)據(jù)結(jié)構(gòu)等工具庫,為業(yè)務(wù)應(yīng)用提供豐富的開箱即用API
內(nèi)置半包粘包處理
豐富的生態(tài),目前已經(jīng)用t-io實(shí)現(xiàn)了http、websocket、mqtt及大量私有協(xié)議
內(nèi)置慢攻擊防御機(jī)制,幫助應(yīng)用自動(dòng)拉黑嫌疑IP

看了上面的話,大概意思就是,簡單易學(xué),而且是國人開發(fā)的,內(nèi)部有自動(dòng)處理半包和粘包處理機(jī)制,無需再重新處理粘包,接下來就是Tio的具體配置代碼

正文

但是今天我們要用的并不是tio-websocket-server而是另外一個(gè)更加簡單的服務(wù),不過這個(gè)已經(jīng)在2020年停止更新了,好像是最后一版java1.8版本的,我看了Tio最新版都是用java17的了,如果還在用java1.8的兄弟們可以使用這個(gè)依賴tio-websocket-spring-boot-starter,下面是依賴的完整展示

1.POM導(dǎo)入依賴

 <!--t-io依賴--><dependency><groupId>org.t-io</groupId><artifactId>tio-websocket-spring-boot-starter</artifactId><version>3.6.0.v20200315-RELEASE</version></dependency>

2.YML配置文件中放入以下配置

# Tio 配置信息
tio:websocket:server:port: 9876#心跳超時(shí)時(shí)間heartbeat-timeout: 60000#是否支持集群,集群開啟需要rediscluster:enabled: falseredis:ip: localhostport: 6379

3.啟動(dòng)類加入注解

注解:@EnableTioWebSocketServer

4.創(chuàng)建處理器
package com.xssq.handler;import com.xssq.service.ApiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.tio.core.ChannelContext;
import org.tio.core.Tio;
import org.tio.http.common.HttpRequest;
import org.tio.http.common.HttpResponse;
import org.tio.websocket.common.WsRequest;
import org.tio.websocket.server.handler.IWsMsgHandler;/**
* tio網(wǎng)絡(luò)套接字味精處理程序
*
* @author xssq
* @version 1.0.0
* @date 2023/09/26
* @wisdom 你可以不會,但你不能不知道
*/
@Component
public class TioWebSocketMsgHandler implements IWsMsgHandler {@Autowiredprivate ApiService apiService;/*** 握手** @param httpRequest    http請求* @param httpResponse   http響應(yīng)* @param channelContext 渠道上下文* @return {@link HttpResponse}*/@Overridepublic HttpResponse handshake(HttpRequest httpRequest, HttpResponse httpResponse, ChannelContext channelContext) {String token = httpRequest.getParam("token");channelContext.setToken(token);Tio.bindGroup(channelContext, "1");Tio.bindUser(channelContext, "1");System.out.println("handshake握手方法");return httpResponse;}/*** 握手后打開** @param httpRequest    http請求* @param httpResponse   http響應(yīng)* @param channelContext 渠道上下文*/@Overridepublic void onAfterHandshaked(HttpRequest httpRequest, HttpResponse httpResponse, ChannelContext channelContext) {System.out.println("onAfterHandshaked握手后打開的");}/*** 在字節(jié)上** @param wsRequest      ws請求* @param bytes          字節(jié)* @param channelContext 渠道上下文* @return {@link Object}*/@Overridepublic Object onBytes(WsRequest wsRequest, byte[] bytes, ChannelContext channelContext) {System.out.println("onBytes方法");return null;}/*** 關(guān)閉** @param wsRequest      ws請求* @param bytes          字節(jié)* @param channelContext 渠道上下文* @return {@link Object}*/@Overridepublic Object onClose(WsRequest wsRequest, byte[] bytes, ChannelContext channelContext) {System.out.println("onClose關(guān)閉方法");return null;}/*** 在文本上** @param wsRequest      ws請求* @param channelContext 渠道上下文* @param message        信息* @return {@link Object}*/@Overridepublic Object onText(WsRequest wsRequest, String message, ChannelContext channelContext) {if ("心跳包".equals(message)) {return null;}apiService.sendMsg(channelContext, message);return null;}
}

5.創(chuàng)建監(jiān)聽器

package com.xssq.listener;import org.springframework.stereotype.Component;
import org.tio.core.ChannelContext;
import org.tio.core.intf.GroupListener;/**
* spring boot組偵聽器
*
* @author xssq
* @version 1.0.0
* @date 2023/10/05
* @wisdom 你可以不會,但你不能不知道
*/
@Component
public class SpringBootGroupListener implements GroupListener {/*** 綁定后打開** @param channelContext 信道上下文* @param s              s*/@Overridepublic void onAfterBind(ChannelContext channelContext, String s) {System.out.println("綁定后打開");}/*** 在解除綁定后打開** @param channelContext 信道上下文* @param s              s*/@Overridepublic void onAfterUnbind(ChannelContext channelContext, String s) {System.out.println("在解除綁定后打開");}
}

6.到此整個(gè)教程也就結(jié)束了,其實(shí)那個(gè)監(jiān)聽器也可以不要,不過用于方便綁定組下面是一些綁定組的語法

/*綁定組*/
Tio.bindGroup(channelContext, "1");
/*綁定userId*/
Tio.bindUser(channelContext, "1");
......
...

其實(shí)還有很多綁定的,還有綁定業(yè)務(wù)方法,綁定token的,很多,下面是一些服務(wù)說明

//最主要的邏輯處理類,必須要寫,否則 拋異常
public class MyWebSocketMsgHandler  implements IWsMsgHandler {}
//可不寫
public class SpringBootAioListener extends WsServerAioListener {}
//可不寫
public class SpringBootGroupListener implements GroupListener {}
//可不寫
public class SpringBootIpStatListener implements IpStatListener {}

后記

操作完上面的內(nèi)容就可以正常使用了,感謝大家觀看

如果我的博客幫助到了您,您可以到我的博客https://blog.csdn.net/weixin_57228276或者微信公眾號搜索幸識SQ,在那里可以找到我,里面也有更多的優(yōu)秀文章

http://www.risenshineclean.com/news/22743.html

相關(guān)文章:

  • 長沙部分風(fēng)險(xiǎn)區(qū)域調(diào)整廈門seo
  • 新網(wǎng)站如何被快速收錄域名注冊萬網(wǎng)
  • 長沙網(wǎng)站托管公司排名商品推廣與營銷的方式
  • 怎么做網(wǎng)站熱線電話上海今天最新發(fā)布會
  • 河南濮陽建設(shè)局網(wǎng)站優(yōu)化seo設(shè)置
  • 做網(wǎng)站注意哪些方面如何做廣告宣傳與推廣
  • 做問卷賺錢最好似網(wǎng)站深圳關(guān)鍵詞優(yōu)化
  • 成都的網(wǎng)站建設(shè)開發(fā)公司云南seo
  • 廣東省公路建設(shè)有限公司網(wǎng)站網(wǎng)絡(luò)營銷課程有哪些
  • 開發(fā)網(wǎng)站最新國際新聞事件今天
  • 做網(wǎng)站后臺要做些什么英文站友情鏈接去哪里查
  • 微信訂閱號做微網(wǎng)站小說搜索風(fēng)云榜
  • 吉林省吉林市簡介武漢seo搜索引擎優(yōu)化
  • 網(wǎng)站開發(fā)電腦配置要求十大外貿(mào)平臺
  • 手機(jī)設(shè)計(jì)廣州seo顧問seocnm
  • 地方網(wǎng)站域名信息流推廣
  • 創(chuàng)造你魔法官方網(wǎng)站起做歡的事百度客服24小時(shí)人工服務(wù)
  • 長春哪家公司做網(wǎng)站好軟文廣告案例分析
  • 成都網(wǎng)站建設(shè)-中國互聯(lián)公司建網(wǎng)站多少錢
  • 好品質(zhì)高端網(wǎng)站設(shè)計(jì)搜索引擎優(yōu)化師工資
  • 代替做網(wǎng)站推廣鄭州seo顧問外包公司
  • 怎么樣做搜索引擎網(wǎng)站快速刷排名seo軟件
  • 長春疫情最新情況最新消息今天網(wǎng)站seo完整seo優(yōu)化方案
  • ps做字幕模板下載網(wǎng)站網(wǎng)站怎么推廣
  • 貴陽網(wǎng)站設(shè)計(jì)免費(fèi)做網(wǎng)站的平臺
  • 馬鞍山做網(wǎng)站公司排名深圳百度seo哪家好
  • 網(wǎng)頁設(shè)計(jì)如何建立網(wǎng)站杭州關(guān)鍵詞自動(dòng)排名
  • 淮安汽車集團(tuán)網(wǎng)站建設(shè)長沙網(wǎng)站seo
  • 網(wǎng)站建設(shè)是什么語言網(wǎng)站營銷策略
  • 北京商地網(wǎng)站建設(shè)公司百度網(wǎng)站排名查詢工具