码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • springboot websocket server无法接收二进制消息数据问题一例


    用java编程真的是在天上飞的感觉,写点服务器端代码时真省事啊,可是出了问题是真不好排查啊。特简单一websocket server,可以触发onOpen,onClose,甚至接收文本消息的onMessage也能触发执行,但是就是针对二进制的onMessage说啥也收不到数据,尝试换了各种姿势,也不报错,也收不到数据,最后翻看其他人的博客发现说默认java的websocket server最多只能接收8k的二进制数据,想收到数据调大配置参数就可以了,乖乖,加上配置以后果然能收到数据了,配置如下:

    1. package com.xxx.slientprint;
    2. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    3. import org.springframework.boot.web.servlet.ServletContextInitializer;
    4. import org.springframework.context.annotation.ComponentScan;
    5. import org.springframework.context.annotation.Configuration;
    6. import org.springframework.web.util.WebAppRootListener;
    7. import javax.servlet.ServletContext;
    8. import javax.servlet.ServletException;
    9. @Configuration
    10. @ComponentScan
    11. @EnableAutoConfiguration
    12. public class WebAppRootContext implements ServletContextInitializer {
    13. @Override
    14. public void onStartup(ServletContext servletContext) throws ServletException {
    15. servletContext.addListener(WebAppRootListener.class);
    16. //这里设置了30兆的缓冲区
    17. //Tomcat每次请求过来时在创建session时都会把这个webSocketContainer作为参数传进去所以对所有的session都生效了
    18. servletContext.setInitParameter("org.apache.tomcat.websocket.textBufferSize","30000000");
    19. servletContext.setInitParameter("org.apache.tomcat.websocket.binaryBufferSize","30000000");
    20. }
    21. }

    咱不说别的,大哥你限制了接收buffer大小你倒是说一声啊,配了slf4j也啥都不输出,真坑人啊。

  • 相关阅读:
    U盘恢复怎么做?3个宝藏方法分享!
    【第49篇】Swin Transformer V2:扩展容量和分辨率
    Springboot分片下载实现
    突破开源天花板!最强文本转语音工具ChatTTS:对话式高可控的语音合成模型
    笔记本电脑恢复删除数据的5种方法
    6.springboot的重要注解和核心配置文件(.properties 文件和 .yml 文件)
    项目可交付成果的质量管理该怎么做?
    (王道考研计算机网络)第五章传输层-第二节:UDP协议
    【C++】——动态内存管理
    网站制作定制标准有哪些?什么是网站制作定制?
  • 原文地址:https://blog.csdn.net/peihexian/article/details/126596449
  • 最新文章
  • 【FHE】我们如何实现同态加密推理(八):SiLU 的密文化——两条路径,和一个 8 字节的开关
    SQLcl 中 c/old/new 替换变量为何失效?先定位再替换
    不让模型写作文,直接从它脑子里读答案:Jev 决策在 .NET 的两条路线
    Halo插件:支持GitHub的图床附件策略
    电视投屏界的“一股清流”!SimpleTVCast 6.0.0-beta 抢先体验:无需TV端App,界面大换血!✨
    华三VXLAN集中式网关实战指南:Spine多活网关 + 双活接入(M-LAG)
    软件更好写之后口碑会更重要
    大 O、大 Omega、大 Theta 的区别,O(n) 复杂度是什么意思
    Java标签跳转:一个鲜为人知但却很实用的小技巧
    多智能体系统论文速读
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号