国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Springboot 整合 WebSocket ,使用STOMP協(xié)議+Redis 解決負載場景問題

這篇具有很好參考價值的文章主要介紹了Springboot 整合 WebSocket ,使用STOMP協(xié)議+Redis 解決負載場景問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

ObjectMapper om = new ObjectMapper();

om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);

om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

jacksonSeial.setObjectMapper(om);

template.setValueSerializer(jacksonSeial);

template.setKeySerializer(stringRedisSerializer);

template.setHashKeySerializer(stringRedisSerializer);

template.setHashValueSerializer(jacksonSeial);

template.afterPropertiesSet();

return template;

}

@Bean

RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,

MessageListenerAdapter topicAdapter) {

RedisMessageListenerContainer container = new RedisMessageListenerContainer();

container.setConnectionFactory(connectionFactory);

//訂閱了主題 webSocketMsgPush

container.addMessageListener(topicAdapter, new PatternTopic(“webSocketMsgPush”));

return container;

}

/**

  • 消息監(jiān)聽器適配器,綁定消息處理器

  • @return

*/

@Bean

MessageListenerAdapter topicAdapter() {

return new MessageListenerAdapter(new RedisListener());

}

}

簡析:

spring boot websocket redis,2024年程序員學習,spring boot,websocket,redis

WebSocketConfig.java :

import org.springframework.context.annotation.Configuration;

import org.springframework.messaging.simp.config.MessageBrokerRegistry;

import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;

import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;

import org.springframework.web.socket.config.annotation.StompEndpointRegistry;

import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

import org.springframework.web.socket.config.annotation.WebSocketTransportRegistration;

/**

  • @Author JCccc

  • @Description EnableWebSocketMessageBroker-注解開啟STOMP協(xié)議來傳輸基于代理的消息,此時控制器支持使用@MessageMapping

  • @Date 2021/6/30 8:53

*/

@Configuration

@EnableWebSocketMessageBroker

public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

private static long HEART_BEAT = 10000;

@Override

public void configureMessageBroker(MessageBrokerRegistry config) {

ThreadPoolTaskScheduler te = new ThreadPoolTaskScheduler();

te.setPoolSize(1);

te.setThreadNamePrefix(“wss-heartbeat-thread-”);

te.initialize();

config.enableSimpleBroker(“/user”, “/topic”).setHeartbeatValue(new long[]{HEART_BEAT, HEART_BEAT}).setTaskScheduler(te);

}

/**

  • 開放節(jié)點

  • @param registry

*/

@Override

public void registerStompEndpoints(StompEndpointRegistry registry) {

//注冊兩個STOMP的endpoint,分別用于廣播和點對點

//廣播

registry.addEndpoint(“/publicServer”).withSockJS();

//點對點

registry.addEndpoint(“/privateServer”).withSockJS();

}

@Override

public void configureWebSocketTransport(WebSocketTransportRegistration registration) {

registration.setMessageSizeLimit(500 * 1024 * 1024);

registration.setSendBufferSizeLimit(1024 * 1024 * 1024);

registration.setSendTimeLimit(200000);

}

}

InjectServiceUtil.java :

import com.stomp.stomptest.producer.PushMessage;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

/**

  • @Author JCccc

  • @Description pushMessage (單例)

  • @Date 2021/6/30 8:53

*/

@Component

public class InjectServiceUtil {

@Autowired

private PushMessage pushMessage;

@PostConstruct

public void init(){

InjectServiceUtil.getInstance().pushMessage = this.pushMessage;

}

/**

  • 實現(xiàn)單例 start

*/

private static class SingletonHolder {

private static final InjectServiceUtil INSTANCE = new InjectServiceUtil();

}

private InjectServiceUtil (){}

public static final InjectServiceUtil getInstance() {

return SingletonHolder.INSTANCE;

}

/**

  • 實現(xiàn)單例 end

*/

public PushMessage pushMessage(){

return InjectServiceUtil.getInstance().pushMessage;

}

}

RedisListener.java :

import org.springframework.data.redis.connection.Message;

import org.springframework.data.redis.connection.MessageListener;

/**

  • @Author JCccc

  • @Description redis監(jiān)聽消息

  • @Date 2021/6/30 8:53

*/

public class RedisListener implements MessageListener {

@Override

public void onMessage(Message message, byte[] bytes) {

System.out.println(“步驟1.監(jiān)聽到需要進行負載轉(zhuǎn)發(fā)的消息:” + message.toString());

InjectServiceUtil.getInstance().pushMessage().send(message.toString());

}

}

簡析:

spring boot websocket redis,2024年程序員學習,spring boot,websocket,redis

Message.java :

/**

  • @Author JCccc

  • @Description

  • @Date 2021/8/20 9:26

*/

public class Message {

/**

  • 消息編碼

*/

private String code;

/**

  • 來自(保證唯一)

*/

private String form;

/**

  • 去自(保證唯一)

*/

private String to;

/**

  • 內(nèi)容

*/

private String content;

public String getCode() {

return code;

}

public void setCode(String code) {

this.code = code;

}

public String getForm() {

return form;

}

public void setForm(String form) {

this.form = form;

}

public String getTo() {

return to;

}

public void setTo(String to) {

this.to = to;

}

public String getContent() {

return content;

}

public void setContent(String content) {

this.content = content;

}

}

PushMessage.java? :

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現(xiàn)在。

深知大多數(shù)前端工程師,想要提升技能,往往是自己摸索成長或者是報班學習,但對于培訓機構(gòu)動則幾千的學費,著實壓力不小。自己不成體系的自學效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Web前端開發(fā)全套學習資料》,初衷也很簡單,就是希望能夠幫助到想自學提升又不知道該從何學起的朋友,同時減輕大家的負擔。
spring boot websocket redis,2024年程序員學習,spring boot,websocket,redis
spring boot websocket redis,2024年程序員學習,spring boot,websocket,redis
spring boot websocket redis,2024年程序員學習,spring boot,websocket,redis
spring boot websocket redis,2024年程序員學習,spring boot,websocket,redis
spring boot websocket redis,2024年程序員學習,spring boot,websocket,redis

既有適合小白學習的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學習提升的進階課程,基本涵蓋了95%以上前端開發(fā)知識點,真正體系化!

spring boot websocket redis,2024年程序員學習,spring boot,websocket,redis
spring boot websocket redis,2024年程序員學習,spring boot,websocket,redis

由于文件比較大,這里只是將部分目錄大綱截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學習筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且后續(xù)會持續(xù)更新
如果你覺得這些內(nèi)容對你有幫助,可以添加V:vip1024c 備注前端獲?。ㄙY料價值較高,非無償)
spring boot websocket redis,2024年程序員學習,spring boot,websocket,redis

最后

編程基礎(chǔ)的初級開發(fā)者,計算機科學專業(yè)的學生,以及平時沒怎么利用過數(shù)據(jù)結(jié)構(gòu)與算法的開發(fā)人員希望復(fù)習這些概念為下次技術(shù)面試做準備?;蛘呦雽W習一些計算機科學的基本概念,以優(yōu)化代碼,提高編程技能。這份筆記都是可以作為參考的。

開源分享:【大廠前端面試題解析+核心總結(jié)學習筆記+真實項目實戰(zhàn)+最新講解視頻】

spring boot websocket redis,2024年程序員學習,spring boot,websocket,redis文章來源地址http://www.zghlxwxcb.cn/news/detail-850831.html

mg-MGh00wjE-1711581558491)]

由于文件比較大,這里只是將部分目錄大綱截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學習筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且后續(xù)會持續(xù)更新
如果你覺得這些內(nèi)容對你有幫助,可以添加V:vip1024c 備注前端獲?。ㄙY料價值較高,非無償)
[外鏈圖片轉(zhuǎn)存中…(img-N3SLTraN-1711581558491)]

最后

編程基礎(chǔ)的初級開發(fā)者,計算機科學專業(yè)的學生,以及平時沒怎么利用過數(shù)據(jù)結(jié)構(gòu)與算法的開發(fā)人員希望復(fù)習這些概念為下次技術(shù)面試做準備?;蛘呦雽W習一些計算機科學的基本概念,以優(yōu)化代碼,提高編程技能。這份筆記都是可以作為參考的。

開源分享:【大廠前端面試題解析+核心總結(jié)學習筆記+真實項目實戰(zhàn)+最新講解視頻】

spring boot websocket redis,2024年程序員學習,spring boot,websocket,redis

到了這里,關(guān)于Springboot 整合 WebSocket ,使用STOMP協(xié)議+Redis 解決負載場景問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • HTTP、WebSocket、STOMP、MQTT 協(xié)議

    HTTP、WebSocket、STOMP、MQTT 協(xié)議

    TCP/IP 是用于因特網(wǎng) (Internet) 的通信協(xié)議,是對計算機必須遵守的規(guī)則的描述,只有遵守這些規(guī)則,計算機之間才能進行通信。 TCP/IP是基于TCP和IP這兩個最初的協(xié)議之上的不同的通信協(xié)議的大集合,是一個協(xié)議族。 1-1、TCP(傳輸控制協(xié)議,Transmission Control Protocol) 在計算機網(wǎng)

    2024年04月15日
    瀏覽(26)
  • SpringBoot + WebSocket+STOMP指定推送消息

    SpringBoot + WebSocket+STOMP指定推送消息

    前些天發(fā)現(xiàn)了一個巨牛的人工智能學習網(wǎng)站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站。 本文將簡單的描述SpringBoot + WebSocket+STOMP指定推送消息場景,不包含信息安全加密等,請勿用在生產(chǎn)環(huán)境。 JDK:11+ Maven: 3.5+ SpringBoot: 2.6+ stompjs@7.0.0 STOMP 是面向簡

    2024年02月14日
    瀏覽(23)
  • SpringBoot項目整合WebSocket+netty實現(xiàn)前后端雙向通信(同時支持前端webSocket和socket協(xié)議哦)

    SpringBoot項目整合WebSocket+netty實現(xiàn)前后端雙向通信(同時支持前端webSocket和socket協(xié)議哦)

    目錄 ? 前言 技術(shù)棧 功能展示 一、springboot項目添加netty依賴 二、netty服務(wù)端 三、netty客戶端 四、測試 五、代碼倉庫地址 ??專屬小彩蛋:前些天發(fā)現(xiàn)了一個巨牛的人工智能學習網(wǎng)站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站(前言 - 床長人工智能教程

    2024年02月12日
    瀏覽(21)
  • uni-app + SpringBoot +stomp 支持websocket 打包app

    websocket 協(xié)議是在http 協(xié)議的基礎(chǔ)上的升級,通過一次http 請求建立長連接,轉(zhuǎn)而變?yōu)門CP 的全雙工通信;而http 協(xié)議是一問一答的請求方式方式。 websocket-uni.js

    2024年02月11日
    瀏覽(23)
  • 基于STOMP協(xié)議的WebSocket消息代理和相關(guān)的安全握手處理器以及消息攔截器

    這段代碼是一個Spring配置類 WsChatConfig ,基于STOMP協(xié)議的WebSocket消息代理和相關(guān)的安全握手處理器以及消息攔截器。這個類通過實現(xiàn) WebSocketMessageBrokerConfigurer 接口來定義WebSocket通信的路由、安全握手以及消息攔截的邏輯。 核心方法詳解 configureMessageBroker(MessageBrokerRegistry confi

    2024年04月26日
    瀏覽(64)
  • SpringBoot整合Websocket(Java websocket怎么使用)

    SpringBoot整合Websocket(Java websocket怎么使用)

    WebSocket 是一種基于 TCP 協(xié)議的全雙工通信協(xié)議,可以在瀏覽器和服務(wù)器之間建立 實時、雙向的數(shù)據(jù)通信 。可以用于在線聊天、在線游戲、實時數(shù)據(jù)展示等場景。與傳統(tǒng)的 HTTP 協(xié)議不同,WebSocket 可以保持 長連接 ,實時傳輸數(shù)據(jù),避免了頻繁的 HTTP 請求和響應(yīng),節(jié)省了網(wǎng)絡(luò)帶

    2024年02月10日
    瀏覽(20)
  • WebSocket(三) -- 使用websocket+stomp實現(xiàn)群聊功能

    WebSocket(三) -- 使用websocket+stomp實現(xiàn)群聊功能

    SpringBoot+websocket的實現(xiàn)其實不難,你可以使用原生的實現(xiàn),也就是websocket本身的OnOpen、OnClosed等等這樣的注解來實現(xiàn),以及對WebSocketHandler的實現(xiàn),類似于netty的那種使用方式,而且原生的還提供了對websocket的監(jiān)聽,服務(wù)端能更好的控制及統(tǒng)計(即上文實現(xiàn)的方式)。 但是,真

    2023年04月08日
    瀏覽(19)
  • java中使用sockjs、stomp完成websocket通信

    主要配置 握手攔截(這套方案好像前端無法補充Header,就不在這里做權(quán)限校驗)這里采用的方法是直接問號拼接token,前端 new SockJS(這里帶問號),sockjs使用的是http所以沒毛病,本文使用的是OAuth2權(quán)限校驗 之后可以設(shè)置握手之后的身份注入(配置了這個可以在單對單訂閱時直接使用) 儲

    2024年02月10日
    瀏覽(24)
  • 微信小程序使用stomp.js實現(xiàn)STOMP傳輸協(xié)議的實時聊天

    微信小程序使用stomp.js實現(xiàn)STOMP傳輸協(xié)議的實時聊天

    簡介: stomp.js:uniapp開發(fā)的小程序中使用 stomp.js:官網(wǎng) stomp.js:GitHub 本來使用websocket,后端同事使用了stomp協(xié)議,導致前端也需要對應(yīng)修改。 如何使用 在static/js中新建stomp.js和websocket.js,然后在需要使用的頁面引入監(jiān)聽代碼+發(fā)送代碼即可 代碼如下: 位置:項目/pages/static/

    2024年02月11日
    瀏覽(61)
  • uniapp微信小程序使用stomp.js實現(xiàn)STOMP傳輸協(xié)議的實時聊天

    uniapp微信小程序使用stomp.js實現(xiàn)STOMP傳輸協(xié)議的實時聊天

    簡介: stomp.js:原生微信小程序中使用 stomp.js:官網(wǎng) stomp.js:GitHub 本來使用websocket,后端同事使用了stomp協(xié)議,導致前端也需要對應(yīng)修改。 如何使用 1.yarn add stompjs 2.版本 “stompjs”: “^2.3.3” 3.在static/js中新建websocket.js,然后在需要使用的頁面引入監(jiān)聽代碼+發(fā)送代碼即可 代

    2024年02月11日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包