我一直在阅读websockets中的ping/pong消息以保持连接活着,但我不确定它们是什么.它是一种独特的框架类型吗?(我没有在与乒乓相关的chrome中的javascript WebSocket对象上看到任何方法).或者它只是一种设计模式(例如,我将"ping"或任何其他字符串发送到服务器并让它响应).乒乓球是否与延续帧有关?
我问的原因是我正在使用一个在Mongrel2后面运行的python框架,所以我想知道是否有办法向Mongrel2发送一条特定的ping/pong消息,告诉它在没有我的python应用需要的情况下保持连接存活担心它.我想,类似于有一个单独的HTTP方法.而且我认为专用的ping/pong消息帧可能比字符串"ping"更简单(服务器和网络上的负载更少),尽管这可能无关紧要.
编辑:我只看了RFC 6455,它看起来像Ping和Pong肯定是控制帧类型与自己的操作码.那么如何从Chrome中的javascript发送Ping帧?
我正在玩HTML5 WebSockets.我想知道,如何优雅地关闭连接?比如,如果用户刷新页面或只是关闭浏览器会发生什么?
当用户只是在没有调用的情况下刷新页面时,会出现一种奇怪的行为websocket.close()- 当他们在刷新后返回时会触发该websocket.onclose事件.
我在SO和网上阅读了很多关于我的问题标题中的关键词的帖子,并从中学到了很多.我读到的一些问题与具体的实施挑战有关,而其他问题则侧重于一般概念.我只是想确保我理解为什么技术X是在技术Y上发明的所有概念和原因等等.所以这里:
Http Polling:基本上是AJAX,使用XmlHttpRequest.
Http Long Polling: AJAX但服务器保持响应,除非服务器有更新,一旦服务器有更新,它发送它然后客户端可以发送另一个请求.缺点是需要来回发送额外的头数据会导致额外的开销.
Http Streaming:类似于长轮询,但是服务器使用带有"Transfer Encoding:chunked"的标头进行响应,因此每次服务器发送一些数据时我们都不需要发起新的请求(因此节省了额外的头部开销).这里的缺点是我们必须"理解"并找出数据的结构,以区分服务器发送的多个块.
Java Applet,Flash,Silverlight:它们提供了通过tcp/ip连接到套接字服务器的能力,但由于它们是插件,开发人员不希望依赖它们.
WebSockets:它们是新的API,它试图通过以下方式解决上述方法的缺点:
我还缺少其他重大差异吗?如果我重新询问或将SO上已有的许多问题合并到一个问题中,我很抱歉,但我只是想从SO和网络上有关这些概念的所有信息中完全理解.
谢谢!
Websocket很好,但它能够处理1,000,000个并发连接吗?
将保留多少系统资源以保持1,000,000个websocket打开?
是否可以使用https的WebSockets?切换到https时,我的WebSocket会返回一个安全错误,并且可以与常规http完美配合...
socket = new WebSocket("ws://my_www:1235");
Run Code Online (Sandbox Code Playgroud)
谢谢
Socket.IO似乎是最流行和最活跃的WebSocket仿真库.Juggernaut使用它来创建一个完整的pub/sub系统.
Faye也很受欢迎,并拥有自己的javascript库,使其完整的功能可与Juggernaut相媲美.Juggernaut使用节点作为其服务器,而Faye可以使用节点或机架.Juggernaut使用Redis进行持久化(更正:它使用Redis作为pub/sub),而Faye只将状态保存在内存中.
我有一个应用程序,其主要功能是通过websockets或长轮询实时工作.
但是,大多数站点都是以RESTful方式编写的,这对于应用程序和其他客户来说非常好.但是,我正在考虑转换到所有站点功能的websocket API,远离REST.这样我就可以更轻松地将实时功能集成到网站的所有部分.这会使构建应用程序或移动客户端变得更加困难吗?
我发现有些人已经在做这样的事:SocketStream
我正在尝试创建一个用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"标头中返回的值.
我发现这个项目:http://code.google.com/p/standalonewebsocketserver/用于websocket服务器,但我需要在python中实现websocket客户端,更确切地说,我需要从我的websocket服务器中的xmpp接收一些命令.