Tag: websocket

当客户端刷新或打开新页面时,Socket.io保持客户端连接

如果用户打开一个新页面或刷新页面,可能在客户端保持相同的socket.io连接,可能存储在会话中的套接字或不可能?

通过socket_io传递socket.io空间?

我正在使用socket_write来打开websocket并将数据传递给node.js socket.io服务器。 我正在发送一些HTML,如下所示: private function openSocketConnection($address = 'localhost', $port = 5600) { $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($socket, $address, $port); return $socket; } $socket = $this->openSocketConnection(); socket_write($socket, $html, strlen($html)); 这工作得很好,并把我的数据发送到我的node.js socket.io服务器,我这样捕捉它: socket.on('data', (msg) => {}); 但我现在想发送的数据,所以一个特定的房间,而不是一般的socket.io房间。 有没有一种方法可以指定一个房间? 也许当使用socket_create()什么的? 如果可能的话,显然我想阻止在每个socket_write上传递房间名称。

NodeJS WebSocket握手无声失败?

我正在尝试在nodejs中编写一个非常简单的websocket服务器,并且遇到了一个问题。 在浏览器上,WebSocket.onclose函数是唯一被触发的(onopen,onmessage和onerror不是)。 我已经testing过Chrome7和FireFox4。 这是我的服务器代码: var http = require('http'),net = require('net'),crypto = require('crypto'); var server = http.createServer(function(req,res){console.log(req);}); ()函数(stream){stream.setEncoding('utf8'); stream.setTimeout(0); stream.setNoDelay(true); stream.on('data',function(data){var sec1_regex = /Sec-WebSocket-Key1:(.*)/g; var sec2_regex = /Sec-WebSocket-Key2:(.*)/g; var origin_regex = / Origin:(。*)/ g; var protocol_regex = / (。*)/ g; console.log(stream); console.log(“**** Incoming **** \ r \ n”+ data); var key1 = sec1_regex.exec(数据)[1]; var num1 = […]

node-websocket-server TypeError:参数必须是string

我正在拖拽ubuntu上的/ var / log / logfile,并得到一个TypeError。 在我的本地Mac机器上运行/var/log/system.log。 命令: sudo node server.js /var/log/logfile (must be sudo to view this log file ) 错误: /npm/node_modules/node-websocket-server/lib/ws/connection.js:290 var byteLen = Buffer.byteLength(data, 'utf8'), ^ TypeError: Argument must be a string at Connection.<anonymous> (/npm/node_modules/node-websocket-server/lib/ws/connection.js:290:26) at clientWrite (//npm/node_modules/node-websocket-server/lib/ws/server.js:34:12) at /npm/node_modules/node-websocket-server/lib/ws/server.js:99:7 at Manager.forEach (/npm/node_modules/node-websocket-server/lib/ws/manager.js:125:14) at Server.broadcast (npm/node_modules/node-websocket-server/lib/ws/server.js:98:13) at Socket.<anonymous> (/npm/server.js:63:11) at Socket.emit (events.js:64:17) […]

用于后台处理的Websockets

使用Websockets(comet,server push,…)来克服长时间运行的HTTP请求的问题是一个好主意吗? 想象一下,你有一个应用程序,build立在全栈Web应用程序框架,如Django或Rails。 你想以表演的名义做一些后台处理。 从程序员的angular度来看,这很容易做到,但问题出现在UI中。 用户需要立即响应。 所以我的想法是使用Socket.IO + node.js + AMQP消息传递,在后台任务完成后将通知推送回浏览器。 我喜欢这个想法,但是它仍然感觉像很多工程,只是因为我们不想在我们的主应用程序中长时间运行请求。 竞争的想法可能是使用另一个更强大的Web服务器,它可以处理许多长时间运行的HTTP请求。 你认为哪一个更好?

客户端端tcp与node.js / socket.io?

我是新来的node.js / socket.io所以我不知道我在做什么,但我已经得到了我的服务器端: var app = require('net') , fs = require('fs') var server = app.createServer(function (socket) { socket.write("Echo server\r\n"); socket.pipe(socket); socket.on('data', function(data) { console.log(data); }); }); var io = require('socket.io').listen(server) server.listen(81); 所以当我使用nc本地主机81并发送数据时,tcp服务器工作。 但是,我不知道如何使用脚本标记来连接和发送数据到服务器端的网站上的tcp服务器。 那么客户端会连接到这个tcp服务器并将数据发送给它? 谢谢! 新增代码: 服务器: var app = require('net') , fs = require('fs') var sockets_list = []; var server = app.createServer(function (socket) { […]

Chrome 16 websocket二进制

我试图在node.js中build立一个websocket服务器,但有问题。 我在这里find了一些代码在stackoverflow和我现在有服务器代码: var net = require("net"), crypto = require("crypto"), users = []; net.createServer(function(socket) { this.name = "Anonymous"; users.push(socket); socket.on('data', function(buffer) { if(buffer.toString('utf-8').substring(0, 14) === "GET / HTTP/1.1") { this.securyPattern = /Sec-WebSocket-Key: (.*)/g; this.key = this.securyPattern.exec(buffer); this.magic = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; this.sha1 = crypto.createHash("sha1"); this.sha1.update(this.key[1] + this.magic); this.accept = this.sha1.digest("base64"); socket.write("HTTP/1.1 101 Switching Protocols\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: " + […]

客户端不握手客户端应重新连接,在集群中的socket.io

我的node.js应用程序与express,redis,mongo和socket.io工作正常。 今天当我介绍群集,我发现它的工作原理,但应用程序有很多消息, 'client not handshaken' 'client should reconnect' 来自socket.io的响应时间很多次,非常糟糕,几秒钟。 然后,我使用http-proxy前端结束来自浏览器的请求。 Chrome浏览器间歇性地工作,不会抛出这样的消息。 有时候,如果我再次打开相同的URL,它会开始抛出这些消息,响应被延迟。 Firefox的行为也是一样的。 随机地,它开始抛出这些消息不断..看起来像websocket在集群环境中的一些问题。 我的node.js版本是0.6.10,socket.io 0.9.0,express 2.5.9,http-proxy 0.8.0

使用node.js v0.6.18安装socket.io。 ws在安装过程中失败

我想安装一个beaglebone上的npm使用socket.io(linux埃) /> npm安装socket.io 它在较老的内核版本的旧版本上运行良好。 我正在使用节点v0.6.18。 当npm tring安装应该用socket.io安装的ws时,似乎有一个问题 我遇到同样的错误,如果我尝试: npm install ws –ws:verbose 结果如下: root@beaglebone:~# npm install ws –ws:verbose npm http GET https://registry.npmjs.org/ws npm http 304 https://registry.npmjs.org/ws npm http GET https://registry.npmjs.org/commander npm http GET https://registry.npmjs.org/tinycolor npm http GET https://registry.npmjs.org/options npm http 304 https://registry.npmjs.org/commander npm http 304 https://registry.npmjs.org/tinycolor npm http 304 https://registry.npmjs.org/options > ws@0.4.18 install /home/root/node_modules/ws > […]

Nodejitsu + HTTPS

当我去https://myapp.nodejitsu.com我奇迹般地启用ssl。 但我的应用程序的websocket运输似乎已经被破坏了。 我需要做什么来启用这个https的websocket,还有什么可以打破? 他们在做什么来启用SSL?