Tag: websocket

如何构build相对于页面URI的WebSocket URI?

我想在浏览器端构build一个相对于页面URI的WebSocket URI。 说,在我的情况下,转换HTTP URI像 http://example.com:8000/path https://example.com:8000/path 至 ws://example.com:8000/path/to/ws wss://example.com:8000/path/to/ws 我现在正在做的是用“ws”replace前4个字母“http”,并附加“/ to / ws”。 有没有更好的办法呢?

为了保持100万个websocket的打开,需要多less系统资源?

Websocket是好的,但它能够处理1000000个并发连接? 为了保持100万个websocket的打开,需要多less系统资源?

node.js多房间聊天的例子

我正在寻找一个支持多个房间的websocket / node.js聊天实现。 我也将写一个需要多个房间或服务器的应用程序,我只是在寻找一些人们如何做的代码示例。 谢谢。 我知道有一个服务http://pusherapp.com提供这项服务,但我正在寻找一个开源的例子。

Socket.IO问题与控制字符

我正在实现一个使用websockets和通过Telnet访问的控制台的应用程序。 在通过websockets和控制台build立的连接之间有一个通信。 我正在经历一个奇怪的问题: 如果我在控制台中input了某个string常量到一个已build立的套接字,它就可以正常工作。 如果我发送一个从控制台作用域收到的string它似乎打开一个新的套接字(不知道),因为在debugging日志中我看到它,并在浏览器端(websockets)它提醒我一个新的连接。 如果我发送本地string(而不是从另一个范围收到的),它发送正确。 (注释行:client.send(message)) 我在这里分享nodeJS代码,考虑到现在这是一个testing应用程序,所以它只能假设一个套接字和websockets连接: // Sample based on: http://elegantcode.com/2011/05/04/taking-baby-steps-with-node-js-websockets/ // Changed for sockets.io 6.x => 7.x var events = require('events'); var eventEmitter = new events.EventEmitter(); var http = require('http'); var socketIO = require('socket.io'); var static = require('node-static'); var port = 2000; var clientFiles = new static.Server('./client'); var httpServer = http.createServer( function(request, […]

本地PHP支持Web套接字可用吗?

寻找Hello WorldtypesWeb套接字实现的例子: 这里是从php.net 创build引用的套接字 ,但是这看起来比Web套接字更低。 我想使用这个网页套接字,如caniuse.com所示,现在已经在所有新的主stream浏览器中实现了。 谷歌search发现了这个Nets.TutsPlus网站 ,我可以在其中使用JavaScript示例代码…但我需要知道如何在PHP中实现服务器端,而不是Java,Ruby或Node.js中的示例。 PHP套接字创build相关? PHP本身支持Web套接字吗? 我想只是在正确的方向PHP实施的一个点将有所帮助。 其实本教程有一个链接到phpwebsockets的断开…这是一个图书馆应该使用? Websockets.org有一个testing应用程序,但没有提到PHP。

如何使用Firebug或其他浏览器查看WS / WSS Websocket请求内容?

有没有办法查看WebSocketstream量? 只有Websocket标头在初始握手中可见。 回应后,一切都消失了: Connection Upgrade Sec-WebSocket-Accept EQqklpK6bzlgAAOL2EFX/nx8bEI= Upgrade WebSocket 我试过Firebug,Live Headers和Fiddler2来跟踪交换,他们都停止在那里login。

最大并发Socket.IO连接

这个问题以前已经问过,但不是最近才提出的,没有明确的答案。 使用Socket.io,在需要添加另一台服务器之前,是否可以维护最大数量的并发连接? 有谁知道任何积极的生产环境,大规模使用websockets(特别是socket.io)? 我真的很想知道什么样的设置最适合最大的连接? 因为Websockets是build立在TCP之上的,我的理解是,除非端口在连接之间共享,否则你将受到64K端口的限制。 但是我也看到了使用Gretty的512K连接报告。 所以我不知道。

Pusher vs Pubnub vs开源Socket.io / SignalR.net / Faye / jWebSocket

我现在正在评估Pusher和PubNub,以便在我的主要Web客户端和我的服务器之间启用双向实时通信。 两者看起来都很让人印象深刻,Pusher的文档看起来更好,而PubNub的可扩展性和可靠性显然是他们的强项。 但是,由于我正在pipe理预算,所以我担心Pusher&PubNub成本可能会成为我们的问题,因此我正在考虑使用其中一个开源替代scheme – 我主要关注Socket.io,Faye和jWebSocket。 尽pipe我自己运行这个服务,但是我有我的担忧: 有没有人实际上将Socket.io或其他开源解决scheme扩展到多个服务器之前? PubNub宣称每秒处理1M条消息! ,我有些怀疑Socket.io可以做到这一点,没有难以理解的数量的服务器,如果它可以工作。 如果我使用开源解决scheme,那么在付费服务中是否有可能会错过该行的function? 无论如何,如果我在AWS上有我的服务器,延迟真的会成为一个问题吗? PubNub位于多个地点,所以我希望这可以减less延迟,尽pipe如果消息需要从美国发送到日本,那么在日本有一台服务器将不会帮助延迟,因为它仍然需要以这样或那样的方式去旅行。 感谢您的build议。

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

我一直在阅读关于ping / pong消息在websockets保持连接活着,但我不知道他们是什么。 它是一个独特的框架types? (我没有看到与乒乓相关的chrome中的JavaScript WebSocket对象上的任何方法)。 或者它只是一个devise模式(例如,我直接发送“ping”或任何其他string到服务器,并有响应)。 乒乓球是否与延续帧有关? 我问的原因是我使用的是一个运行在Mongrel2后面的python框架,所以我想知道是否有一种方法可以发送一个特定的ping / pong消息来告诉它在不需要我的python应用程序的情况下保持连接的活动担心。 类似于有一个单独的HTTP方法,我猜。 我想像一个专门的ping / pong消息帧可能比string“ping”更简单(服务器和networking上的负载更less),尽pipe这可能不会太重要。 编辑:我只是看着RFC 6455 ,它看起来像乒乓球肯定是控制框架types与自己的操作码。 那么如何从Chrome中的JavaScript发送Ping框?

我如何获得node.js中的string的sha1哈希值?

我试图创build一个用node.js写的websocket服务器 为了让服务器工作,我需要得到一个string的SHA1哈希值。 我必须做的是在文档第35页的第5.2.2节中解释。 说明:例如,如果客户端握手中"Sec-WebSocket-Key"头的值为"dGhlIHNhbXBsZSBub25jZQ==" ,则服务器会附加"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"string形成string"dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11" 。 然后,服务器将采取此string的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"头中返回。