Articles of websocket

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?

需要一些帮助理解nodejs和socket.io

对不起,这个问题相当无知,但是我对这两种技术有点困惑。 我在C#中编写了一个使用Fleck的networking服务器,并且一切正常,但是我意识到我可能找不到可以运行.NET应用程序的托pipe提供程序。 我想使用websockets,我发现socket.io是非常受欢迎,但我不确定它是什么。 纠正我,如果我错了,但是,它就像写一个服务器在JavaScript中,并运行与node.exe应用程序的JavaScript文件,然后服务器正在运行? 人们如何find提供这种服务的托pipe服务提供商? 最后,socket.io只是nodejs的扩展吗? 当你使用socket.io时,你必须在javascript中编写你的服务器吗? 再次,对于新手的问题感到抱歉,但我只是想在继续之前了解一些基本的东西。 谢谢。

HTML5 Websocket + Node.js实时通知系统

在过去的几周里,我用socket.io构build了一个使用HTML5 Websockets和node.js的小型通知系统。 还有一些事情我还没有解决。 我已经阅读了使用node.js的实时通知应该是最好的性能解决schemevs长轮询等,因为非阻塞I / O操作。 现在假设我们必须通知这个用户的朋友。 就像“我买了一个新的iPhone”。 我如何教node.js实时通知特定用户1:n? 直到知道我只有发送和接收消息1-1通信。 这意味着我必须首先检查facebook api friendlist,并找出哪个facebook_id以某种方式与哪个socket_id连接。 然后检查用户的隐私设置,如果他想接收通知,然后发送并保存到数据库中。 所以对我来说,这似乎不是最有效的解决scheme… 目前, 我会使用mongo-db本地驱动程序的node.js和数据库操作完成由服务器的javascript。 我仍然需要执行facebooks javascript sdk来获取好友列表,但是我会遇到用户隐私设置的问题。 这是不是破坏了非阻塞I / O的所有优点? 你怎么解决这个问题呢? 对我来说,这似乎很复杂。 非常感谢你。