Articles of socket.io

使用回送令牌来validationsocket.io

我正在使用loopback 2.0和socket.io 1.0.6。 我想使用环回authentication方法来authenticationsocket.io。 我发现了在loopback / lib / middleware / token.js中validation用户的方法。 https://github.com/strongloop/loopback/blob/master/lib/middleware/token.js 然后我写如下: var loopback = require('loopback'); var ioapp = module.exports = socketio; function socketio(server) { var io = require('socket.io')(server); // auth io.use(function(socket, next) { loopback.token()(socket.request, null, next); }); // listeners … return io; }; 但实际上我不会工作,并导致这样的错误。 /Users/…/project_root/node_modules/loopback/lib/models/access-token.js:201 id = req.param(params[i]); ^ TypeError: Object #<IncomingMessage> has […]

AngularJS:socket.io破坏套接字

我正在使用一个节点的socket.io服务器和一个基于angular度的socket.io客户端(使用angular-socket.io ),除了在一个特定的条件下,它运作良好:我不知道如何彻底销毁sockets当套接字无法连接时,用它完成。 工作stream程是这样的:在一个给定的页面上有一个button来打开一个模式,模式的打开将sockets工厂注入到模块控制器中,并且连接到socket.io服务器。 这一切都很好,当套接字可以连接。 当模式closures时,调用$ scope.destroy并且模态控制器中的处理程序试图清理套接字。 这种模式可以closures和重新打开多次,或只有一次。 我多次创build/销毁套接字的过程可能是我的问题的一部分,这可能不是正确的范例,但是当模式被closures时,将无法与其交互,并且在页面离开之后套接字当然不会不需要存在或保持连接。 套接字创build: angular.module('app.common.newSocketFactory', ['btford.socket-io']) .factory('newSocketFactory', ['socketFactory', function(socketFactory){ return function(){ return socketFactory({ioSocket:io.connect('http://localhost:3000', {forceNew: true})}); }; }]); 注射: angular.module('…', [ 'app.common.newSocketFactory', …. ]) .controller('Controller', ['$scope', '$modalInstance', 'newSocketFactory', … function ($scope, $modalInstance, newSocketFactory, …){ … $scope.socket = newSocketFactory(); 这是我的销毁处理程序: $scope.$on('$destroy', function(){ $scope.socket.emit('unlisten'); $scope.socket.disconnect(); //have tried passing true too. }); 这可以正确地工作,当套接字能够连接在模式closures之前,服务器中的断开的事件观察到客户端断开连接。 另外,我可以closures模​​式,然后closures服务器,不会尝试重新连接。 […]

socket.io + redis + expressjs集群 – 在expressjs请求中获取套接字对象

基于这个答案的问题: https : //stackoverflow.com/a/18650183/4478897 我试图find这个解决scheme,但似乎没有任何工作,我需要的方式。 expressjs和socket.io我们可以使用redis共享会话,并在io世界里发送io消息( io.sockets.on('connection', …)。问题是如果我们想发送消息(或者使用简单的socket.join/leave )在expressjs世界( route.get/post )中。 如果我们不使用集群,我们可以将客户端socket对象连接到表示request对象(或简单地export io对象),然后在任何GET / POST路由上随时使用它。 另一方面,如果我们正在使用上面提到的方法获取expressjs世界中的socket对象,有时socket对象是未定义的,因为此客户端的socket对象是在其他worker初始化的。 一些示例stream程: 客户端连接到http:// localhost , worker 1处理这个请求。 页面加载后,客户端连接到socket.io 。 Worker 2处理这个连接。 客户端执行一个POST,并且worker 1或worker X处理这个请求。 在这种情况下,当客户端执行POST时,只有worker 2知道该客户端的socket对象。 所以这将得到一个未定义的socket对象。 所以,这个问题: 我们如何从任何worker获取客户端socket对象来在expressjs request对象上重用它。 也许我的代码是错误的,但几乎就像上面提到的答案的链接。 笔记 不想使用某种代理。 不想迁移到其他库(expressio,sockjs …) 对不起我的英语不好 :) 使用最后一个nodejs,socket.io,expressjs,socket.io-redis,redis …版本 不要犹豫,问问题! 更新1 可能的解决scheme,但仍然需要testing它。 不知道这是否是一个非常好的解决scheme。 更新3 :工作代码在我自己的答案 更新2 像更新1,但使用https://nodejs.org/dist/latest-v5.x/docs/api/cluster.html#cluster_event_message

使用socket.io与群集?

我很好奇,我可以同时使用socket.io和群集。 我知道集群使用多核工作在多个worker的node.js上。 这意味着如果我使用群集socket.io,两个连接的用户 两个不同的socket.io可能会导致无法相互通信的问题? 所以,而不是在socket.io上使用集群将是一个答案?

SignalR或NodeJS / Socket.IO?

我想用C#和MVC3开发一个实时应用程序。 我在几个项目中使用了Socket.IO,但是现在我看到了关于SignalR的一些好消息,有些人说SignalR可能是Socket.IO的一个很好的select。 我想知道是否有任何问题或与SingalR的错误,这是从Socket.IO到SignalR的一个很好的select? 提前致谢

如何监控/计算NodeJS服务器的带宽使用情况?

好吧,所以在一些业余时间,我已经开发了一个nodejs / socketio应用程序streamvideo,但我想知道它运行在什么样的状态,我有我的活动监视器运行,目前有2个用户发送对方的数据stream和统计如下面所述: %CPU: 6.0 Threads: 5 Real Memory: 59.6mb 我如何计算在服务器上发送的数据的总MB / GB?

在heroku上与socket.io的Nodejs

我想在expressku上运行express和socket.io的nodejs应用程序,并且出现这个错误 EACCESS,权限被拒绝 当我尝试运行下面的代码: app.configure(function () { app.set('port', process.env.PORT || 3000); }); var server = http.createServer(app).listen(app.get('port')) io = require('socket.io').listen(server); // it crashes on this line io.configure(function () { io.set("transports", ["xhr-polling"]); io.set("polling duration", 10); io.set("log level", 1); }); 是否有可能在heroku上做到这一点? 依赖关系: "socket.io": "*", "express": "3.0.0rc4",

使用webrtc + node.js进行video会议

首先抱歉我的英语不好。 我正在尝试使用WebRTC进行video通话,但不起作用。 我正在使用node.js + socket.io + express服务器。 我感谢您可以给我的任何帮助或build议。 非常感谢你。 这是我的代码。 服务器 var express = require('express') , io = require('socket.io') , app = express() , server = require('http').createServer(app) , io = io.listen(server); server.listen(8080); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); var usuarios = []; io.sockets.on('connection', function (socket) { usuarios.push(socket); console.log('Nuevo usuario conectado – ' […]

socket.io – 断开连接事件不会在xhr-polling中触发

在socket.io中,当传输xhr-polling处于活动状态时,断开事件不会触发。 如果我切换到websockets的运输工作正常,但在xhr轮询它不起作用。 /* Basics */ var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); server.listen(1337, null); io.set('transports', ['xhr-polling']); // routing app.get('/', function (req, res) { res.sendfile("index.html"); app.use(express.static(__dirname)); }); io.sockets.on('connection', function (socket) socket.on('disconnect', function() { console.log('LOL'); }); }); 在下面的代码断开不会触发,但如果我删除行 – io.set('transports', ['xhr-polling']); 它完美的工作,所以为什么它不与xhr-polling一起工作? 但只有websockets? 我怎样才能解决这个问题? 我错过了什么吗? 提前致谢 ;)

unity3D:使用socket.io连接到node.js

我正在尝试使用socket.io来连接我的unity3d程序与node.js服务器。 是否有可能?如果可能,请分享这个文件或步骤…. 大多数人使用“unity socket.io”连接unity3d程序和node.js服务器。 我发现一个问题在连接Unity3D与Node.js统一socket.io。 但是我需要socket.io。 如何安装这个模块。 请分享这个……..