
WebSocket/Socket
文章平均质量分 74
专注于WebSocket/Socket长连接技术分享
FeelTouch Labs
技术架构、人工智能、区块链与密码学专家
展开
-
Websocket客户端从Openai Realtime api Sever只收到部分数据问题分析
明显看起来只收到了部分数据,究其原因是超过了接受缓冲区的65535的最大默认配置,没有进行自定义配置,对于json数据就是设置WebSocket容器的默认最大文本消息缓冲区大小。正常情况下,会从Openai Realtime api Sever收到正常的json数据,但是当返回音频数据时,总会返回非json数据。原创 2024-12-22 00:05:28 · 669 阅读 · 0 评论 -
Websocket客户端始终连接不上Server排查之Openai Realtime api
当尝试从openai 提供的openai-realtime-console websocket客户端连接到Netty实现的websocket server时,遇到总是无法连接的问题,而自己写的websocket client和postman的client则可以正常连接,那么原因出在哪里呢?如果客户端和服务器位于不同的域上,并且服务器未配置正确的跨域策略,则无法建立连接3。可以明显的看到服务端并没有使用sub-protocol(s),问题到这里就破案了,就是子协议不匹配的问题,那么问题解决起来就很容易了。原创 2024-12-21 23:33:47 · 1521 阅读 · 2 评论 -
Netty实现WebSocket Client三种典型方式
【代码】Netty实现WebSocket Client三种典型方式。原创 2024-11-08 19:30:24 · 792 阅读 · 0 评论 -
Netty实现WebSocket Server是否开启压缩深度分析
是否开启压缩会直接影响与客户端是否能够成功握手。原创 2024-11-07 20:18:36 · 1087 阅读 · 0 评论 -
Netty在Firbase中的使用
实时更新是现代应用程序中用户体验的一个组成部分。随着用户期待这样的行为,越来越多的应用程序都正在实时地向用户推送数据的变化。通过传统的3层架构很难实现实时的数据同步,其需要开发者管理他们自己的运维、服务器以及伸缩。通过维护到客户端的实时的、双向的通信,Firebase提供了一种即使的直观体验,允许开发人员在几分钟之内跨越不同的客户端进行应用程序数据的同步——这一切都不需要任何的后端工作、服务器、运维或者伸缩。原创 2023-11-03 17:55:39 · 244 阅读 · 0 评论 -
WebSocket系列12---Spring Cloud Gateway的多WebSocket请求转发实现
Linkis:https://github.com/WeBankFinTech/Linkis/wiki一、功能点 前端Client与后台多WebSocket微服务1多N支持 WebSocket通道全生命周期管理 二、Zuul的缺陷 完全不支持转发WebSocket请求。三、Spring Cloud Gateway的局限 一个WebSocket客户端只能将请求转发给一个特定的后台服务,无法完成一个WebSocket客户端通过网关API对接后台多个WebSoc...转载 2020-06-27 00:59:24 · 3651 阅读 · 0 评论 -
WebSocket系列11---分布式WebSocket集群解决方案
问题起因最近做项目时遇到了需要多用户之间通信的问题,涉及到了WebSocket握手请求,以及集群中WebSocket Session共享的问题。期间我经过了几天的研究,总结出了几个实现分布式WebSocket集群的办法,从zuul到spring cloud gateway的不同尝试,总结出了这篇文章,希望能帮助到某些人,并且能一起分享这方面的想法与研究。以下是我的场景描述资源:4台服务器。其中只有一台服务器具备ssl认证域名,一台redis+mysql服务器,两台应用服务器(集群) 应用转载 2020-06-27 00:48:09 · 6021 阅读 · 2 评论 -
WebSocket系列10---千万级WebSocket消息推送服务技术分析
参考:https://www.imooc.com/learn/1025拉模式和推模式区别拉模式(定时轮询访问接口获取数据)数据更新频率低,则大多数的数据请求时无效的 在线用户数量多,则服务端的查询负载很高 定时轮询拉取,无法满足时效性要求推模式(向客户端进行数据的推送)仅在数据更新时,才有推送 需要维护大量的在线长连接 数据更新后,可以立即推送基于WebSocket协议做推送浏览器支持的socket编程,轻松维持服务端的长连接 基于TCP协议之上的高层协议,无需开发者关心通转载 2020-06-27 00:45:27 · 2201 阅读 · 0 评论 -
WebSocket系列9---对WebSocket进行长连接压测和分析方案
压测方案1:开发压测客户端(多线程)语言任选:JavaScript, python, java, go都可以只要支持标准的websocket即可。参考如下:websocket长连接压力测试踩过的坑方案2:Jmeter的websoket插件参考如下:Jmeter对Web Socket进行压力测试 —— 200人直播课实战经验jmeter针对websocket协议的压测...原创 2019-12-02 15:43:26 · 2123 阅读 · 0 评论 -
WebSocket系列8---从OkHttp实现Websocket源码的角度分析Websocket协议
HTML5 拥有许多引人注目的新特性,WebSocket就是其中之一。WebSocket一向有着 “Web 的 TCP ”之称。通常 WebSocket 都是用于Web的,用于构建实时的 Web 应用。它可以在浏览器和服务器之间提供一个基于 TCP 连接的双向通道。WebSocket 协议本质上是一个基于 TCP 的协议。为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一...转载 2019-11-30 23:04:41 · 1135 阅读 · 0 评论 -
WebSocket系列7---通信机制详解
WebSocket是什么?WebSocket和HTTP一样,是基于TCP的应用层通信协议,通过维持一条持久的连接以实现浏览器与服务器全双工通信,是随着H5一起出来的。WebSocket和HTTP有什么关系么?Websocket其实是一个新协议,除了最开始借用了HTTP来完成握手,后面跟HTTP基本没有关系了。传统的HTTP要不断的建立、关闭连接(这里的关闭并不是说关闭TCP连接...原创 2019-11-18 00:30:16 · 967 阅读 · 0 评论 -
WebSocket系列6---对用户进行多房间管理的解决方案
房间管理方式使用websocket实现实时通讯的功能,有两种方式只创建一个聊天的房间,所有人都往里面发送数据,然后接收数据的那一方,通过自己定义的规则,对接收到的数据进行筛选,获取自自己想要的数据。 创建多个两天的房间,每个房间管理自己的聊天信息,接收方不用对数据进行筛选,因为只能接收自己所在房间的信息,所以无需过滤。单房间管理package com.green.rainbow....原创 2019-11-17 01:00:43 · 1903 阅读 · 0 评论 -
WebSocket系列5---分布式下WebSocket Session共享解决方案
最近在做消息中心模块,想要实现消息实时推送到前端页面展示,直接摒弃了前端定时轮训调用接口来获取消息数据的方式,采用了WebSocket服务端推送。流程是首先前端跟后端应用新建一个连接,并携带当前登录的用户ID,此时WebSocket会创建一个WebsocketSession来唯一绑定该连接,我们会在后端用Map建立用户ID与Session的映射关系:Map<String userI...转载 2019-11-13 19:57:08 · 2926 阅读 · 0 评论 -
WebSocket系列4---在websocket里面添加Token
websocket协议在握手阶段借用了HTTP的协议,但是在JavaScriptwebsocketAPI中并没有修改请求头的方法。var token='dcvuahsdnfajw12kjfasfsdf34'send发送参数var ws = new WebSocket("ws://" + url + "/webSocketServer");ws.onopen=function(...转载 2019-11-13 19:39:57 · 7553 阅读 · 0 评论 -
WebSocket系列3---JavaScript客户端的心跳检测和重连
背景websocket链接,为实现断网、服务器重启等特殊情况。原理每隔一段时间向服务器发送一次数据 即(heartCheck.start()),服务器接收数据后返回一次信息,用来证明一切正常,否则就开始启动新的定时器来尝试重新连接(websocketReconnect()一定的时间尝试重连,如此重复)。var lockReconnect = false;//避免重复连...转载 2019-11-11 01:55:32 · 930 阅读 · 0 评论 -
WebSocket系列2---SpringBoot下解决获取Httpsession及bean无法注入问题
对于现存的问题已经期望带来的Httpsession值得获取,我们的目标已经很明确了,那么直接说实现:1,在获取Httpsession教程的基础上进行修改package com.ws.chat;import javax.servlet.http.HttpSession;import javax.websocket.HandshakeResponse;import javax.we...转载 2019-11-11 01:22:17 · 1854 阅读 · 0 评论 -
WebSocket系列1---SpringBoot WebSocket 不能注入( @Autowired ) 解决问题
在WebSocket使用@service注解的service类时,启动没有问题,在发送聊天信息的时候,出现异常:java.lang.NullPointException,过程中找到很多的解决方案,但是这些方法都没有解决,会出现其他的一些错误。解决方法:将要注入的 service 改成 static,就不会为null了。代码如下:@Controller@ServerEndpoint(...转载 2019-11-11 00:54:23 · 983 阅读 · 0 评论