Articles of websocket

Socket.io – 客户端断开后手动重新连接

我使用node.js和socket.io创build实时Web应用程序。 我将给用户完全控制套接字连接,如手动断开和(重新)连接。 function socket_connect() { console.log('func socket_connect'); socket = io.connect('http://url/to/the/app'); } function socket_reconnect() { console.log('func socket_reconnect'); socket_connect(); } function socket_disconnect () { console.log('func socket_disconnect'); if (socket) socket.disconnect(); } 在客户端启动socket_connect()函数工作正常,但使用socket.disconnect() ,没有新的连接启动。

将video从HTML5stream式传输到node.js

我有一个使用“ws”npm包的node.js服务器。 从HTML5我可以得到用户的networking摄像头stream,但我怎么把networking摄像头stream通过HTML5 websocket发送到我的node.js服务器? 目前我在服务器上有这样的代码: wss.on('connection', function(ws) { ws.on('message', function(data, flags) { console.log("Message received"); }); }); 而在客户端上这个代码: var ws = new WebSocket('ws://localhost:8080'); ws.onopen = function() { ws.send(stream); } 其中stream是从navigator.getUserMedia与video: true 。 提前致谢!

如何通过带有node.js和socket.io的WebSocketsstream式传输MP3数据?

我有问题通过WebSocket与node.js和socket.iostreamMP3数据。 一切似乎工作,但decodeAudioData不公平对我来说。 这是我的玩具服务器: var app = require('http').createServer(handler) , io = require('socket.io').listen(app) , fs = require('fs') app.listen(8081); function handler (req, res) { res.writeHead(200, { 'Content-Type': 'text/html', }); res.end('Hello, world!'); } io.configure('development', function() { io.set('log level', 1); io.set('transports', [ 'websocket' ]); }); io.sockets.on('connection', function (socket) { console.log('connection established'); var readStream = fs.createReadStream("test.mp3", {'flags': 'r', 'encoding': 'binary', 'mode': […]

如何通过WebSockets连接到socket.io时发送cookie?

有一种方法可以轻松地通过一个身份validationCookie cookie握手一个WebSocket连接到socket.io? 我现在必须单独做,如下所示: socket = new io.Socket(document.location.hostname); socket.addEvent("connect", function() { // Send PHP session ID, which will be used to authenticate var sessid = readCookie("PHPSESSID"); this.send("{'action':'authenticate','sessionid':'"+sessid+"'}"); });

如何限制客户端通过websocket发送的数据量?

我正在使用ws模块,我想通过websocket将客户端发送的数据量限制为1Mb。 这将防止恶意用户发送大量数据(以GB为单位),导致服务器内存不足,这将导致每个普通用户的拒绝服务错误。 例如,Express示例允许指定发布请求主体的最大大小,如下所示: bodyParser.json({limit:'1Mb'}) 我如何做与ws模块类似的东西? 我试过了 var ws = require('ws').Server var wsserver = new ws({port:8080, limit:'1Mb'}) 但是这当然不起作用。 我想传输的数据被中断(超过1Mb后)和websocket连接被closures。 我怎样才能做到这一点? 必须有一种方法来限制来自客户端的dataframe…

如何在带有套接字(socket.io)的NodeJS中查找客户端的响应时间(延迟)?

我试图用NodeJS创build一个多人游戏,我想同步客户端之间的动作。 在客户端和服务器之间find延迟(请求返回到客户端的时间)的最佳方法是什么? 我的第一个想法是客户端#1可以发送一个时间戳与请求,所以当客户端#2将收到客户端#1的行动,他将调整是行动的速度,以消除请求的延迟。 但是问题是两个客户端的系统date时间可能不相同,所以根据客户端#1的请求不可能知道卷轴延迟。 另一种解决scheme是使用服务器的时间戳,但现在我怎么知道客户端的延迟?

WebSocket地址可以携带参数吗?

是ws://myserver.com/path?param=1一个有效的WebSocket地址? 地址http://myserver.com/path?param=1 (注意它现在是http而不是ws )可以正常使用wscat ,但是我无法在浏览器上使用它。

格式化消息从python客户端发送到socket.io node.js服务器

我试图通过发送一个自定义的事件到服务器,使用Socket.io 0.7来获取Python客户端与Node.js服务器交谈。 基于我在GitHub上find的Socket.io引用,以及下面的WebSocket Python库 。 这是我的代码到目前为止: 节点服务器 io.sockets.on('connection', function (socket) { socket.on('newimg', function(data) { console.log(data); }); }); Python客户端 def handshake(host, port): u = urlopen("http://%s:%d/socket.io/1/" % (host, port)) if u.getcode() == 200: response = u.readline() (sid, hbtimeout, ctimeout, supported) = response.split(":") supportedlist = supported.split(",") if "websocket" in supportedlist: return (sid, hbtimeout, ctimeout) else: raise TransportException() else: […]

如何在socket.io中configuration重新连接?

我用下面的代码创buildsocket.io连接 var socket = new io.connect('http://localhost:8181', { 'reconnect': true, 'reconnection delay': 500, 'max reconnection attempts': 50 }); 但是当我杀死服务器CTRL + C并重新启动时,重新连接不会发生。 但在客户端引发断开事件。 这可能是什么原因?

Chrome和Safari恢复到xhr轮询,而不是与socket.io的websockets

我有一个websockets和socket.io的问题。 当我尝试使用socket.io连接到我的节点服务器时,它最初使用websockets连接,但在不久之后恢复为jsonp-polling。 这是我连接时节点服务器的输出: 8 Jun 07:01:15 – Initializing client with transport "websocket" 8 Jun 07:01:19 – Initializing client with transport "jsonp-polling" 8 Jun 07:01:19 – Client 16630339180119336 connected 这发生在Chrome浏览器和Safari。 我已经更新到最新的socket.io版本0.6.17,并运行节点0.4.7。 我曾尝试删除我的cookie和cachingbuild议在github和SO,但问题依然存在。 此外,当我尝试强制websockets它永远不会完全连接到一个会话ID。 有没有人有任何想法?