标签: websocket

从浏览器发送websocket ping/pong框架

我一直在阅读websockets中的ping/pong消息以保持连接活着,但我不确定它们是什么.它是一种独特的框架类型吗?(我没有在与乒乓相关的chrome中的javascript WebSocket对象上看到任何方法).或者它只是一种设计模式(例如,我将"ping"或任何其他字符串发送到服务器并让它响应).乒乓球是否与延续帧有关?

我问的原因是我正在使用一个在Mongrel2后面运行的python框架,所以我想知道是否有办法向Mongrel2发送一条特定的ping/pong消息,告诉它在没有我的python应用需要的情况下保持连接存活担心它.我想,类似于有一个单独的HTTP方法.而且我认为专用的ping/pong消息帧可能比字符串"ping"更简单(服务器和网络上的负载更少),尽管这可能无关紧要.

编辑:我只看了RFC 6455,它看起来像Ping和Pong肯定是控制帧类型与自己的操作码.那么如何从Chrome中的javascript发送Ping帧?

javascript websocket mongrel2

121
推荐指数
3
解决办法
10万
查看次数

正确关闭WebSocket(HTML5,Javascript)

我正在玩HTML5 WebSockets.我想知道,如何优雅地关闭连接?比如,如果用户刷新页面或只是关闭浏览器会发生什么?

当用户只是在没有调用的情况下刷新页面时,会出现一种奇怪的行为websocket.close()- 当他们在刷新后返回时会触发该websocket.onclose事件.

javascript sockets html5 websocket

118
推荐指数
4
解决办法
15万
查看次数

我对HTTP轮询,长轮询,HTTP流和WebSockets的理解

我在SO和网上阅读了很多关于我的问题标题中的关键词的帖子,并从中学到了很多.我读到的一些问题与具体的实施挑战有关,而其他问题则侧重于一般概念.我只是想确保我理解为什么技术X是在技术Y上发明的所有概念和原因等等.所以这里:

Http Polling:基本上是AJAX,使用XmlHttpRequest.

Http Long Polling: AJAX但服务器保持响应,除非服务器有更新,一旦服务器有更新,它发送它然后客户端可以发送另一个请求.缺点是需要来回发送额外的头数据会导致额外的开销.

Http Streaming:类似于长轮询,但是服务器使用带有"Transfer Encoding:chunked"的标头进行响应,因此每次服务器发送一些数据时我们都不需要发起新的请求(因此节省了额外的头部开销).这里的缺点是我们必须"理解"并找出数据的结构,以区分服务器发送的多个块.

Java Applet,Flash,Silverlight:它们提供了通过tcp/ip连接到套接字服务器的能力,但由于它们是插件,开发人员不希望依赖它们.

WebSockets:它们是新的API,它试图通过以下方式解决上述方法的缺点:

  • 与Java Applet,Flash或Silverlight等插件相比,WebSockets的唯一优势是WebSockets本身内置于浏览器中,不依赖于插件.
  • WebSockets优于http流的唯一优势是您不必努力"理解"并解析收到的数据.
  • WebSockets优于长轮询的唯一优势是消除额外的标头大小以及为请求打开和关闭套接字连接.

我还缺少其他重大差异吗?如果我重新询问或将SO上已有的许多问题合并到一个问题中,我很抱歉,但我只是想从SO和网络上有关这些概念的所有信息中完全理解.

谢谢!

javascript web-applications comet websocket http-streaming

113
推荐指数
3
解决办法
3万
查看次数

将保留多少系统资源以保持1,000,000个websocket打开?

Websocket很好,但它能够处理1,000,000个并发连接吗?
将保留多少系统资源以保持1,000,000个websocket打开?

websocket

112
推荐指数
2
解决办法
5万
查看次数

带有SSL的html5 Websocket

是否可以使用https的WebSockets?切换到https时,我的WebSocket会返回一个安全错误,并且可以与常规http完美配合...

socket = new WebSocket("ws://my_www:1235"); 
Run Code Online (Sandbox Code Playgroud)

谢谢

ssl html5 websocket

108
推荐指数
3
解决办法
11万
查看次数

Faye vs. Socket.IO(和Juggernaut)

Socket.IO似乎是最流行和最活跃的WebSocket仿真库.Juggernaut使用它来创建一个完整的pub/sub系统.

Faye也很受欢迎,并拥有自己的javascript库,使其完整的功能可与Juggernaut相媲美.Juggernaut使用节点作为其服务器,而Faye可以使用节点或机架.Juggernaut使用Redis进行持久化(更正:它使用Redis作为pub/sub),而Faye只将状态保存在内存中.

  1. 一切都准确吗?
  2. Faye说它实现了Bayeux - 我认为Juggernaut没有这样做 - 是因为Juggernaut处于较低级别(IE,我可以使用Juggernaut实现Bayeux)
  3. 如果想要,Faye可以切换到使用Socket.IO浏览器javascript库吗?或者他们的javascript库做了根本不同的事情?
  4. 项目之间是否还有其他建筑/设计/哲学差异?

bayeux publish-subscribe juggernaut websocket socket.io

102
推荐指数
2
解决办法
3万
查看次数

最大并发Socket.IO连接数

这个问题之前已被问过,但最近没有问过,也没有明确答案.

使用Socket.io,在需要添加另一台服务器之前,是否可以维护最大数量的并发连接?

有没有人知道任何大规模使用websockets(特别是socket.io)的活动生产环境?我真的想知道什么样的设置最适合最大连接?

因为Websockets是建立在TCP之上的,所以我的理解是,除非在连接之间共享端口,否则您将受到64K端口限制的约束.但我也看到过使用Gretty512K连接报告.所以我不知道.

websocket socket.io

102
推荐指数
4
解决办法
8万
查看次数

Websocket API取代REST API?

我有一个应用程序,其主要功能是通过websockets或长轮询实时工作.

但是,大多数站点都是以RESTful方式编写的,这对于应用程序和其他客户来说非常好.但是,我正在考虑转换到所有站点功能的websocket API,远离REST.这样我就可以更轻松地将实时功能集成到网站的所有部分.这会使构建应用程序或移动客户端变得更加困难吗?

我发现有些人已经在做这样的事:SocketStream

javascript rest websocket node.js

96
推荐指数
6
解决办法
5万
查看次数

如何在node.js中获取字符串的sha1哈希值?

我正在尝试创建一个用node.js编写的websocket服务器

为了使服务器工作,我需要获取字符串的SHA1哈希值.

我需要做的是在文档的第5.2.2节第35页中解释.

注意:例如,如果"Sec-WebSocket-Key" 客户端握手中的标头值为"dGhlIHNhbXBsZSBub25jZQ==",则服务器会附加字符串"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"以形成字符串"dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11".然后服务器将获取该字符串的SHA-1哈希值,给出值0xb3 0x7a 0x4f 0x2c 0xc0 0x62 0x4f 0x16 0x90 0xf6 0x46 0x06 0xcf 0x38 0x59 0x45 0xb2 0xbe 0xc4 0xea.然后对该值进行base64编码,以提供"s3pPLMBiTxaQ9kYGzzhZRbK+xOo="将在"Sec-WebSocket-Accept"标头中返回的值.

javascript websocket node.js

94
推荐指数
5
解决办法
8万
查看次数

是否为python实现了WebSocket客户端?

我发现这个项目:http://code.google.com/p/standalonewebsocketserver/用于websocket服务器,但我需要在python中实现websocket客户端,更确切地说,我需要从我的websocket服务器中的xmpp接收一些命令.

python xmpp client-server websocket

92
推荐指数
4
解决办法
13万
查看次数