Questions tagged «websocket»

WebSocket是建立在TCP套接字之上的API,并且是用于客户端和服务器之间的双向全双工通信的协议,而没有HTTP的开销。


9
使用SSL的node.js,socket.io
我正在尝试使用我的SSL证书运行socket.io,但是它将无法连接。 我基于聊天示例创建代码: var https = require('https'); var fs = require('fs'); /** * Bootstrap app. */ var sys = require('sys') require.paths.unshift(__dirname + '/../../lib/'); /** * Module dependencies. */ var express = require('express') , stylus = require('stylus') , nib = require('nib') , sio = require('socket.io'); /** * App. */ var privateKey = …


3
在Android应用程序中使用哪个WebSocket库?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 2年前关闭。 改善这个问题 我想将服务添加到我的Android应用程序中,该应用程序在后台运行并保持WebSocket连接(可能需要几个小时甚至几天),并定期将一些数据发送到服务器。 现在似乎有一堆用于Java的WebSocket库,但我不确定应该使用哪个库: GitHub上的 TooTallNate / Java-WebSocket描述:用100%Java编写的准系统WebSocket客户端和服务器实现。http://java-websocket.org/- 这是我搜索“ android websocket”的第一个结果。但是,它有很多未解决的问题,尤其是关于SSL连接的问题,目前似乎还没有得到积极维护。 GitHub上的 koush / AndroidAsync说明:异步套接字,http(客户端+服务器),websocket和android的socket.io库。基于nio,而不是线程。-仍然有许多未解决的问题,但似乎可以维护/解决。 网站上的项目Tyrus说明:JSR 356:WebSocket的Java API-参考实现-由Oracle制造。不确定是否可以在Android中使用。 网站上的 Jetty WebSocket客户端API信息:Jetty还提供了Jetty WebSocket客户端库,可简化与WebSocket服务器的通话。-再说一次:不知道它是否可以在Android中使用。 GitHub上的 codebutler / android-websockets说明:裸露的最低Android websockets(hybi13 / RFC)客户端 -schwiz / android-websocket-example中使用了该客户端,这是StackOverflow问题“如何制作Android设备保持与Internet的TCP连接而没有唤醒锁定? ”。 GitHub上的 Atmosphere / wasync说明:具有后备功能的WebSocket传输Node.js,Android和Java的客户端库 http://async-io.org TakahikoKawasaki / nv-websocket-client 来自GitHub的描述:Java中的高质量WebSocket客户端实现。 square / okhttp 来自GitHub的描述:适用于Android和Java应用程序的HTTP …

2
从浏览器发送Websocket ping / pong框架
我一直在阅读有关Websocket中的ping / pong消息的信息,以使连接保持活动状态,但是我不确定它们是什么。它是独特的帧类型吗?(我看不到Chrome中与乒乓球有关的javascript WebSocket对象上的任何方法)。还是仅仅是一种设计模式(例如,我从字面上发送“ ping”或任何其他字符串到服务器并让它响应)。乒乓球是否与连续帧有关? 我问的原因是我正在使用在Mongrel2后面运行的python框架,所以我想知道是否有一种方法可以向Mongrel2发送特定的ping / pong消息,该消息会告诉它使连接保持活动状态而无需我的python应用程序担心它。我猜想就像有一个单独的HTTP方法。而且我想象一个专用的ping / pong消息帧可能比字符串“ ping”更简单(服务器和网络上的负载更少),尽管那可能并不重要。 编辑:我只是看了RFC 6455,看起来Ping和Pong绝对是带有自己的操作码的控制帧类型。那么,如何从Chrome中的javascript发送Ping框架?

5
正确关闭WebSocket(HTML5,Javascript)
我正在玩HTML5 WebSockets。我在想,如何优雅地关闭连接?例如,如果用户刷新页面或仅关闭浏览器会发生什么? 当用户仅刷新页面而不调用页面时,会有一种奇怪的行为-当用户在刷新websocket.close()后返回时,它将触发该websocket.onclose事件。

4
我对HTTP轮询,长轮询,HTTP流和WebSocket的理解
我在SO和网络上阅读了很多有关我的问题标题中的关键字的帖子,并从中学到了很多。我读的一些问题与特定的实施挑战有关,而其他问题则与一般概念有关。我只是想确保我了解所有概念以及为什么发明技术X而不是发明技术Y的理由等等。因此,这里去: Http轮询:基本上是AJAX,使用XmlHttpRequest。 Http Long Polling: AJAX,但服务器保留响应,除非服务器进行了更新,一旦服务器进行了更新,它将发送该更新,然后客户端可以发送另一个请求。缺点是需要来回发送的附加头数据,导致额外的开销。 Http流传输:类似于长轮询,但是服务器使用带有“传输编码:分块”的标头进行响应,因此我们不需要每次服务器发送一些数据时就发起一个新请求(从而节省了额外的标头开销)。这里的缺点是我们必须“理解”并弄清楚数据的结构,以区分服务器发送的多个块。 Java Applet,Flash,Silverlight:它们提供了通过tcp / ip连接到套接字服务器的功能,但是由于它们是插件,因此开发人员不想依赖它们。 WebSockets:它们是新的API,它试图通过以下方式解决上述方法的不足: WebSockets相对于Java Applet,Flash或Silverlight等插件的唯一优势是WebSockets内置于浏览器中,并且不依赖于插件。 与HTTP流相比,WebSockets的唯一优势是您不必费力“理解”和解析收到的数据。 WebSockets相对于Long Polling的唯一优势在于,它消除了额外的标头大小以及为请求打开和关闭套接字连接。 我还有其他重大差异吗?很抱歉,如果我要重新提出或将关于SO的许多问题合并为一个问题,但是我只想从SO和Web上有关这些概念的所有信息中完全理解。 谢谢!

4
最大并发Socket.IO连接
之前(而不是最近)已经问过这个问题,并且没有明确的答案。 使用Socket.io,在需要添加另一台服务器之前,是否可以维护一个并发连接的最大数量? 有谁知道大规模使用websockets(尤其是socket.io)的活跃生产环境吗?我真的很想知道哪种设置最适合最大连接数? 因为Websocket是基于TCP构建的,所以我的理解是,除非端口在连接之间共享,否则您将受到64K端口限制的约束。但是我也看到了使用Gretty进行512K连接的报告。所以我不知道

2
保持1,000,000个Websocket开放时将占用多少系统资源?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 7年前关闭。 改善这个问题 Websocket很好,但是它能够处理1,000,000个并发连接吗? 保持1,000,000个Websocket开放时,将占用多少系统资源?
122 websocket 

3
带SSL的WebSocket
是否可以使用带有HTTPS的WebSocket? 切换到HTTPS时,我的WebSocket返回一个安全错误,并且可以与常规HTTP完美配合。 下面是一个片段; socket = new WebSocket("ws://my_www:1235");
115 ssl  websocket 

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编码,以给出value "s3pPLMBiTxaQ9kYGzzhZRbK+xOo=",该值将在"Sec-WebSocket-Accept"标头中返回。

3
负载平衡网络插座
我对如何对Web套接字进行负载平衡有疑问。 我有一台支持Web套接字的服务器。浏览器连接到我的网站,每个浏览器都打开一个Web套接字www.mydomain.com。这样,我的社交网络应用可以将消息推送到客户端。 传统上,仅使用HTTP请求,我将通过在两个Web服务器之前添加第二个服务器和一个负载均衡器来进行扩展。 使用Web套接字时,连接必须直接与Web服务器连接,而不是直接与负载均衡器连接,因为如果一台计算机的物理限制为例如64k个开放端口,并且客户端正在连接到负载均衡器,那么我将无法支持超过64k的并发用户。 那我怎么- 让客户端在页面加载时直接连接到Web服务器(而不是负载平衡器)?我是否只是从节点加载JavaScript,并且每次最初请求页面时,负载平衡器(或其他负载)随机地修改脚本的URL? 处理涟漪开始?浏览器将注意到,随着Web服务器关闭,连接已关闭。我可以编写JavaScript代码来尝试重新打开连接,但是该节点将消失一会儿。所以我想我将不得不回到负载均衡器来查询要使用的下一个节点的地址? 我确实想知道负载均衡器是否在初始请求上发送了重定向,以便浏览器最初请求www.mydomain.com并重定向到www34.mydomain.com。直到节点出现故障,这一直很好,而Facebook之类的网站则不会这样做。他们是如何做到的呢?

6
javax.websocket客户端简单示例
有人可以给我提供一个非常简单的websocket客户端使用示例javax.websocket吗? 我想连接到websocket(ws://socket.example.com:1234),发送消息(添加频道)并收听消息。所有消息(已发送和已收听)均为JSON格式。 顺便说一句,这个库最适合简单的WebSocket通信吗?
104 java  websocket 


3
Faye vs.Socket.IO(和剑圣)
Socket.IO似乎是最受欢迎和最活跃的WebSocket仿真库。剑圣使用它来创建一个完整的发布/订阅系统。 Faye也很流行,也很活跃,并且拥有自己的JavaScript库,使其完整功能可与Juggernaut媲美。剑圣使用节点作为其服务器,而Faye可以使用节点或机架。剑圣使用Redis进行持久化(更正:使用Redis进行发布/订阅),Faye仅将状态保留在内存中。 以上所有内容都准确吗? Faye表示它实现了Bayeux-我认为Juggernaut不会这样做-是因为Juggernaut的级别较低(即,我可以使用Juggernaut来实现Bayeux) 如果愿意,Faye是否可以切换到使用Socket.IO浏览器JavaScript库?还是他们的JavaScript库在根本上做不同的事情? 项目之间是否还有其他建筑/设计/理念差异?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.