草庐IT

webSocket二次封装

全部标签

javascript - 如何静默调试 Safari 无法连接到安全的 WebSocket

当执行newWebSocket('ws://server/');时,Safari连接正常,但当使用newWebSocket('wss://server/');它完全失败(返回一个null对象)。更糟糕的是,它会悄无声息地失败——在回溯(自定义EventletWeb服务器)或Safari内的错误控制台中没有错误。Chrome在安全和非安全主机上都能正常工作。我该如何调试或修复这个问题?Google的信息非常匮乏。这是运行OpenSSL代替WebSockets服务器的一些回溯,看看会发生什么。首先,这是Chrome的(确实有效)调试输出:UsingdefaulttempDHparamete

javascript - 如何使用 Websockets 发送旧消息

我有一个有效的Websockets示例,其中客户端从服务器接收消息。我不确定如何在客户端连接时将旧消息发送给他们。例子:每个客户端在连接时提供他们的名字服务器响应“[name]justconnected”(对所有客户端)任何新客户都不会收到这些消息我想知道客户端是否可以通过任何方式接收旧消息(所有消息,或者最后5分钟内的消息都可以接受)。我怀疑我可能必须自己捕获这些信息,将其存储在某个地方(例如数据库),然后自己将消息发送给新客户。是这样吗,还是我遗漏了什么?如果有人有伪代码,或指向其他人如何实现它的示例的链接,那将很方便。 最佳答案

javascript - JavaScript WebSocket.send 方法会阻塞吗?

如果我通过JavaScriptWebSocket的send方法发送一个大的Blob或ArrayBuffer。..send方法调用会阻塞直到发送数据,还是复制数据以异步发送以便调用可以立即返回?一个相关的(未回答的)问题是,从我的解释来看,一系列快速发送是否会导致onmessage事件延迟,正如有人描述的那样发生在MobileSafari中:ApparentblockingbehaviourinJavaScriptwebsocketonmobileSafari 最佳答案 根据bufferedAmount属性的描述,我推导出send必须

javascript - 如何通过 DDP (WebSocket) 协议(protocol)访问 meteor.com 上托管的应用程序?

我有一个Meteor应用程序A和另一个应用程序B,不使用Meteor,但与应用程序A进行一些数据交换。当我在我的本地网络中的一台机器上启动A时它工作正常,但是当我将它部署到meteor.com托管时它却没有。服务器没有回复。B使用代码newWebSocket("ws://"+host+":3000/websocket")进行连接(DDP协议(protocol))。但是,当我将ws更改为wss时,即使在LAN中的机器上它也不再工作-它不回复。当我在浏览器中打开它时,我看到应用A的主页使用了如下URLwss://ddp--6774-{我的主机名}.meteor.com/sockjs/465

javascript - 是否可以使用 Spring-WebSockets 通过 WebSockets 通过 STOMP 发送二进制数据?

我能够在springdocumentation之后通过WebSockets使用STOMP发送和接收JSON.然而,在高速率下性能很差,所以我想分析一下二进制消息的使用。Spring-WebSockets4.0在Chrome35中运行的JavaScript客户端stomp.js1.7.1发送我使用带有必要代理中继的SimpMessageTemplate发送消息-请参阅springdocumentation@ControllerpublicclassDemoBinaryController{@AutowiredprivateSimpMessagingtemplatetemplate@Sch

javascript - WebSocket 握手 : Unexpected response code: 404

我正在编写我的第一个websocket程序并在加载网页时遇到“WebSocket握手:意外响应代码:404”错误。我正在使用JDK1.7和jboss8(wildfly8.0)。有人可以帮忙吗?window.onload=init;varsocket=newWebSocket("ws://localhost:8080/WebsocketHome/actions");socket.onmessage=onMessage;在html中头部 最佳答案 谢谢大家的建议,我找到了答案。我复制的代码来自http://www.oracle.com/

javascript - 如何通过 websockets 高效处理大量 HTML5 canvas 像素数据

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Receivingimagethroughwebsocket使用imageData=context.getImageData(0,0,width,height);JSON.stringify(imageData.data);我抓取像素数据,将其转换为字符串,然后通过websockets通过网络发送。但是,这个字符串可能会很大,具体取决于Canvas对象的大小。我尝试使用此处的压缩技术:JavaScriptimplementationofGzip但是socket.io抛出错误Websocketmessageco

记录SpringCloudGateway无法完成转发Websocket的问题

项目场景:使用SpringCloudGateway作为网关转发Websocket链接到微服务。问题描述SpringCloudGateway无法完成Websocket的转发,表现为无法链接。原因分析:我遇到的问题具体有两个原因导致。跨域问题我其实已经配置了,但是少加了一个s,allowedOrigins写成了allowedOrigin花了我八个小时看源码自闭因为SpringGateway有一个默认的跨域Filter:CorsWebFilter。这个过滤器使用DefaultCorsProcessor检查了跨域问题。当调用方的域名非同源并且不在允许列表中时会拒绝访问。 @Override publi

go - 处理多个 websocket 连接

我正在尝试创建一个程序,该程序将通过gorilla网络套接字连接到多个服务器。我目前有一个程序将遍历服务器地址列表并创建一个新的goroutine,该goroutine将创建自己的Websocket.conn并处理读写。问题是每次创建一个新的goroutine时,以前的goroutine都会被阻塞,只有最后一个可以继续。我相信这是因为gorillawebsocket库阻止了每个gorotutine,但我可能错了。我试过在服务器列表迭代器中放置一个计时器,每个goroutine都可以完美地工作,但是当用另一个地址创建一个新的goroutine时,以前的goroutine被阻止了。我的代码

node.js - 为什么 WebSocket 实现在传输多个文件时比 HTTP/2 Push 慢? (Node.js/围棋)

我一直在Node和Go中尝试使用WebSockets和HTTP/2库。我的基本设置是创建客户端和服务器,从服务器重复发送文件并测量时间,直到每个文件在客户端可用。令我惊讶的是,HTTP/2推送实现的性能明显优于WebSocket(总时间快5倍以上)。我做错了什么吗?我的GorillaWebSocket和node-ws以下服务器:开始packagemainimport("net/http""io/ioutil""log""github.com/gorilla/websocket")varfile[]bytevarupgrader=websocket.Upgrader{ReadBuffer