Articles of socket.io

Socket.IO与扭曲

我的想法是为iOS和Android构build一个简单的聊天应用程序。 无论如何,我的问题与服务器端有关。 根据我所读的,做聊天应用程序的最佳select是构build套接字。 提到数据库,我的意图是使用MySQL,为了select其中一种可能性,这也可能是重要的。 我的问题是, 就可伸缩性,速度和安全性而言,这是最好的select:使用Twisted或使用Socket.IO的NodeJS构buildPython套接字? 我想可能还有其他的可能性来构build一个高效的套接字,但现在我正在考虑这两个。 如果你能给我一些build议,我真的很感激。

在套接字io中事件的callback函数中获取事件名称

我正在build立一个中介节点服务器作为套接字客户端和服务器,我想听后端服务器事件,然后处理后,将事件转发到客户端(浏览器)。 var socket = require('socket.io'), client = require('socket.io-client'); socket.on('event_name', function(data) { /* Logic to process response and relay to client */ client.emit(this.event, data); // How can I get name of the outer event? }); 我想获得callback中的event_name值。 我能怎么做?

nodejs,socket.io简单的代码内存泄漏

我写了代码bellow使用nodejs和socket.io为一个简单的套接字应用程序(只是连接和断开连接),约50用户内存使用量不会变化太多,但对于多达300用户和一个小时后,内存使用刚刚长大server.js进程接近300MB,并通过时间传递增长),这看起来像nodejs不释放内存。 var server = require('http').createServer(); var io = require('socket.io')(server); var port = 9090; var sockets = {}; server.listen(port, function () { console.log('Server listening at port ', port); //timer and logs are not problem , i tested it before. setInterval(function(){ console.log(Object.keys(sockets).length+' Online Devices At '+Date()); }, 1000 * 60 * 1); }); io.on('connection',function(socket){ sockets[socket.id]={id:socket.id}; console.log('connected '+socket.id […]

在Socket.io中进行身份validation

我将尝试在socket.io上validation连接。 目前,用户首先通过REST API进行身份validation,然后向用户发送带有经过身份validation的用户名的JsonWebToken 。 当我打开客户端和服务器之间的连接后,我的计划是暂时从连接的套接字列表中删除这个套接字,以防止服务器之间的数据接收和发送,而我执行身份validation。 在这个validation中,我validation令牌,如果令牌是有效的,我重新添加套接字的id到连接的套接字列表。 唯一的问题是第一部分不起作用。 我似乎无法从列表中删除套接字。 为了testing这个我做了以下。 io.on('connection', function(socket){ //temp delete socket delete io.sockets.connected[socket.id]; console.log(io.sockets.connected); socket.emit("test"); }); 正如你所看到的,我删除了套接字,并发出一个testing事件来查看套接字是否仍然打开。 客户收到的消息不应该是。 有谁知道这是为什么发生?

如何在node.js中清理

嗨我们正在开发node.js,socket.io和redis的应用程序。 我们有这个程序: exports.processRequest = function (request,result) { var self = this; var timerknock; switch(request._command) { case 'some command': // user login with username // some statement timerknock=setTimeout(function() { //some statemetn },20*1000); case 'other command ': // some statement clearTimeout(timerknock); } }; 但是当取消定时器时,其他命令执行时不会取消,我该怎么做取消定时器?

Socket.io和现代浏览器不工作

我有一些与socket.io和现代浏览器奇怪的问题。 令人惊讶的是,与IE9工作正常,因为回退闪光灯似乎更好地工作。 在我的服务器(与快递) var io = socketio.listen(server.listen(8080)); io.configure('production', function(){ console.log("Server in production mode"); io.enable('browser client minification'); // send minified client io.enable('browser client etag'); // apply etag caching logic based on version number io.enable('browser client gzip'); // gzip the file io.set('log level', 1); // reduce logging io.set('transports', [ // enable all transports (optional if you want […]

通过socket.io将数据发送到app.js

我想要: 检索从input表单input的数据。 通过socket.io发送数据并发送控制台日志说完成 接收快速app.js的数据 使用mongoose将数据插入到mongodb数据库中。 我明白发出消息,但不知道如何发布数据。 先谢谢你 我的app.js是这样设置的: //app.js config … var socket = io.listen(server); socket.on('connection', function(socket) { console.log('socket.io connected'); }); app.post('/go', function(req, res) { socket.on('data', function(data) { new Order({ routeFrom : data.routeFrom, routeTo : data.routeTo, leaving: data.leaving }).save(function(err, docs) { if(err) { console.log("error"); } res.json(data); }); socket.emit('callback', {done: 'Done'}); }); }); 我的index.ejs文件: <script src="/socket.io/socket.io.js"></script> […]

节点JS服务器到服务器连接

是否有可能从另一台服务器连接到NodeJS服务器? 两个NodeJS服务器相互通信? //Server Code var io = require('socket.io').listen(8090); io.sockets.on('connection', function (socket) { io.sockets.emit('this', { will: 'be received by everyone'}); socket.on('private message', function (from, msg) { console.log('I received a private message by ', from, ' saying ', msg); }); socket.on('disconnect', function () { io.sockets.emit('user disconnected'); }); }); //Client Code in Server Code. Connecting to another server. […]

如何使用最新的mean.io使用socket.io?

我已经提取了最新的Mean.io的一个副本,并注意到与我以前一直在使用的以前的版本相比,相当多的变化。 现在,我正在做的是创build一个非常基本的聊天应用程序,使用socket.io与房间。 在Socket文档的基本设置之后,我必须实现以下内容: var app = require('express')() , server = require('http').createServer(app) , io = require('socket.io').listen(server); server.listen(80); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 我将在哪里定义基本的套房设置? socket.set("log level", 1); var people = {}; var rooms = {}; […]

WebSockets(或AJAX长轮询等)可以运行在不同于原始HTTP请求的端口上吗?

我想编写一个应用程序,使用带有node.js和socket.io的WebSockets和Django结合使用,并将通过Redis共享数据(大量的stream行语!)。 如果我运行不同的端口上的节点(例如,5555),我将能够通过WebSocket(或与socket.io回退方法,如长轮询等)连接到它或将相同的原始策略给我问题? 如果是这样,我怎么能绕过他们?