Articles of socket.io

Benchmarkt socket.io

我想基准我的socket.io服务器。 我想testing服务器可以处理多less个并行连接和消息。 但是我的socket.io服务器在几分钟后崩溃了,当时我开始使用大约200个websocket进行基准testing。 我尝试使用node.js的集群模块将进程共享到内核。 当我使用集群模块时,一段时间后有些连接会断开。 我用于testing的服务器是具有以下属性的亚马逊云上的虚拟服务器: 7 GB的内存 20个EC2计算单元(8个虚拟核心,每个2.5个EC2计算单元) 1690 GB的实例存储 64位平台 I / O性能:高 API名称:c1.xlarge 这是基准客户端的代码: var fs = require('fs'); var io = require("socket.io-client"); var host = "http://localhost:3000"; var timeLog = fs.createWriteStream(__dirname+'/public/time.log',{flags:'a',mode:0666, encoding:'encoding'}); var count = 200; var sockets = []; var total = 0; var countTime = 0; var echo = exports; echo.start […]

Javascripttypes的数组“通过电线”

我创build一个8位无符号的JavaScript数组: var myArray = Uint8Array(64); 在客户端和服务器上操作这个数组,然后通过socket.io连接发送它。 我们正在写一个游戏,因此通过networking发送的数据越小越好。 因为socket.io不支持发送二进制数据是值得打扰与JavaScripttypes的数组,或者我们应该只使用正常的JavaScript数组? 他们还会小于原生js数组吗?

nodejs,socket.io:如何从套接字函数获取请求和响应?

即时通讯创build聊天应用程序,使用nodejs(0.8.15),expression(> 3.0)框架和mongodb注册用户。 var express = require('express') , http = require('http') , path = require('path') , io = require('socket.io'); var app = express() , server = http.createServer(app) , io = io.listen(server); app.configure(function() { app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser('secret')); app.use(express.session({cookie: {maxAge: 60000*100}})); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); }); […]

轻松整合socket.io和导轨

我现在使用Rails已经超过2年了,现在我正在构build一个简单的社交networking的实时应用程序,使用private_pub gem进行评论和通知,我阅读了关于nodejs的内容,现在我正在第三周学习它,nodejs是非常令人惊叹的平台,但我想知道如何将nodejs和socket.io与我的Rails应用程序集成,以提供在线/离线function以及聊天function。

将数据添加到socket.io套接字对象

我想在连接上添加一些自定义的信息到我的套接字对象,以便当我断开套接字,我可以读取自定义信息。 IE: // (Client) socket.on('connect', function(data){ socket.customInfo = 'customdata'; }); // (server) socket.on('disconnect', function () { console.log(socket.customInfo); });

Socket IO WebSocket请求被企业防火墙阻止。

从企业防火墙/代理使用socket.io模块的解决scheme是什么? 这是我正在使用的代码。 // setup express server var app = express() var serv = http.createServer(app); serv.listen(80); // setup socket io – listens in on express store as well for sessions var io = require('socket.io').listen(serv);

socket.io 1.2.1如何在重新连接后解决双重事件

在socket.io的博客中说,在1.2.1版本中 “自述文件修复,以防止在重新连接的示例中的双重事件[@nkzawa]” 我为客户端和服务器下载了1.2.1版本,但是在重新连接之后仍然是两次调用事件。 或者我应该用自述文件做些什么? 我试过这种方式重新连接,它的工作,但我可以用它来生产。 这是不是很方便? socket.disconnect() // remove socket object socket = undefined // connect again socket = io.connect({'forceNew':true}) 正如我所说的是正确的方式,还是有缺点? 更新,添加代码 服务器端代码 socket.on('client_emited', function(data){ socketIO.to('this socket id').emit('server_emitted'); }) 客户端代码 var socket; function connectSocket () { if (!socket) socket = io({'forceNew':true}); else socket.connect(); } socket.on('connect', function(){ console.log('CONNECTED TO SOCKET.IO SERVER. SENDING "client_emited" EVENT'); socket.emit('client_emited'); }); […]

间隔发送消息到websockets

我试图build立一个“查看最近的search”function到我的网站。 本质上,我想每5秒钟在网站上显示一个新的最近的search。 做这个的最好方式是什么? 我正在考虑让每个页面通过socket.io连接到我的服务器,然后每隔5秒向所有套接字广播一个关于新search的消息。 在客户端,当从套接字服务器接收到消息时,我将使用一些客户端JavaScript来更新网页的最近search部分。 是这样做的最好方法吗? 如果是这样,我该如何执行? 我正在使用node.js / express。

共享Socket.IO和WS之间的WebSocket连接

为了能够在使用Socket.IO的RPCfunction的同时发送二进制数据,我想我可以在同一台服务器上同时使用Socket.IO和WS模块。 而不是打开完全独立的服务器来build立两个连接,我想知道我是否可以使用相同的HTTP服务器。 是否可以同时使用一个由http.createServer()为Socket.IO和WS创build的服务器? 很明显,我期望从客户端创build一个Socket.IO连接和一个常规的WebSocket连接。 下面的代码在客户端创build协议错误,大概是因为Socket.IO和WS都试图处理连接。 var http = require('http'); var server = http.createServer(app); server.listen(3000); // Socket.IO var io = require('socket.io').listen(server); io.sockets.on('connection', function (socket) { // … } // ws var WebSocketServer = require('ws').Server var wss = new WebSocketServer({server: server}); wss.on('connection', function (ws) { // … }

Socket.io检测断开连接的原因

我正在使用socket.io,我可以检测断开事件的断开连接的原因? 我可以看到像这样的日志文件 info:传输结束(引导)info:传输结束(closures超时)info:传输结束(错误) 我想得到的原因(启动,closures超时,错误)我会这样使用: socket.on('disconnect', function(){ console.log('User 1 disconnected because '+reason); }); 我能得到原因吗? 编辑:我find了解决办法 socket.on('disconnect', function(reason){ console.log('User 1 disconnected because '+reason); });