Tag: socket.io

为什么dynamic内容在所有浏览器中都有变化

我有一个node.js应用程序具有基本身份validation,我已经添加了socket.io实时messaging.Ilogin三个浏览器使用三个不同的credentials.Example xyz@xyz.com abc@abc.com 123@123.com 每个用户login后,我将它们添加到当前login的用户列表中删除当前用户。 对于第三( 123@123.com )用户,只有在线显示xyz@xyz.com & abc@abc.com 。 这样对于第二( abc@abc.com )用户,只有xyz@xyz.com & 123@123.com在线显示。 逻辑工作正常,我控制台从服务器端logging。 但问题是网站上显示的在线用户被最后login的用户覆盖了所有浏览器 。 如果123@123.com最后login,则所有浏览器中的在线用户列表将被覆盖为xyz@xyz.com,abc@abc.com,反之亦然。 结果: 因此对于第三用户(123@123.com) xyz@xyz.com& abc@ abc.com在线显示。 所以对于第二用户( abc@abc.com ) xyz@xyz.com&abc@abc.com在线显示。 所以对于第一个用户(xyz@xyz.com) xyz@xyz.com& abc@ abc.com在线显示。 客户端更新在线用户的代码。 $(document).ready(function(){ var socket = io.connect('http://localhost:3000'); // get the current user email var email = $("#email").text(); socket.emit('user', email); // list of online […]

只使用redis socketio来与Php进行通信,反之亦然

只使用redis socketio来与Php进行通信,反之亦然 对于laravel中的这类事件来说,我相当陌生,但是我不太清楚如何使用Laravel在socketio和php之间进行通信。 我相当新的这个框架,请容易在我身上。 我已经知道如何从PHP到Nodejs socketio进行通信,但问题是我不知道相反的通信是如何工作的! 一世 注意:我的PHP会话是REDIS 这是我的命令 class ChatCommand extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'command:name'; /** * The console command description. * * @var string */ protected $description = 'Command description'; /** * Create a new command […]

套接字IO性能成本比较房间和事件

在我的应用程序中,我正在使用redis适配器socket.io 我有场景,我必须创builddynamic聊天两人之间的聊天室 但是我已经有了他们用户的房间 现在,当我创build聊天室并单独发布事件时,是否有性能优势? 或当我发布多个活动userId房间? 哪一个更好。? 有什么性能基准testing工具可以给我们关于CPU负载和networking负载的细节 我知道的http://drewww.github.io/socket.io-benchmarking/和https://github.com/M6Web/websocket-bench但这些没有帮助的CPU负载和内存的负载 请在这里指导我

在使用express-socket.io-session时,不推荐使用express-session选项,为什么会出现这种情况?

所以我正在使用express-socket.io-session模块,并试图在我的代码中复制文档中所述的示例。 但是,在这样做的时候,我一直遇到这些警告: express-session deprecated undefined resave option; express-session deprecated undefined saveUninitialized option; express-session deprecated req.secret; 我的express版本是4.13.4,socket.io是1.4.5,根据文档支持。 我不知道为什么它一直说废弃。 这是我如何初始化我的快速会议和express-socket.io会话: var expressSession = require('express-session'); var sharedSession = require('express-socket.io-session'); app.use(expressSession({secret:'surfsocial2016', resave: true, saveUninitialized: true }) ); io.use(sharedSession(expressSession,{autoSave:true})); 以下是我的套接字代码: io.on('connection', function(socket){ console.log(socket.handshake.session.room); socket.on('send message', function(data){ console.log(data["message"]); io.emit('new message', data["message"]); }); }); 我的“发送消息”事件不起作用,因为每当我从客户端发出的东西时,没有发生。 我认为这是因为被弃用的警告。 一切正常,如果我删除io.use(sharedSession(expressSession,{autoSave:true})); 这就是为什么我怀疑这个问题是与那些被弃用的警告有关。 我初始化variables是否错误?

如何检测套接字IO中的重新连接事件

每当客户端连接时,我使用socket.id为该客户端分配一个id,并将其保存在服务器中供将来参考。 我现在遇到的问题是断开/重新连接。 我甚至不知道如何模拟这种情况,因为如果我重新加载客户端页面,技术上是创build一个新的客户端,并用不同的ID连接到服务器。 如果我断开并手动连接客户端,则客户端将再次拥有不同的id(socket.id)。 我使用socket.on('reconnect',function(){…})在客户端和服务器上设置了'reconnect'事件,但是它似乎永远不会被调用,给我以上的尝试。 那么你将如何去模拟这种情况呢? 然后,检测这个新客户端是否是断开连接的同一客户端的最佳方法是什么?

Laravel nodejs socket io

对于我的生活,我不能让我的页面连接到客户端节点js服务器服务套接字io! 当服务页面是public_html文件中的静态页面时,所有的工作都很好,但是一旦我使用laravel的视图,客户端就会回到长时间的轮询,而这个轮询并不是真正的。 我甚至无法得到它在控制台上输出连接味精。 服务器: var socket = require( './public/node_modules/socket.io' ); var express = require('./public/node_modules/express'); var app = express(); var server = require('http').createServer(app); var io = socket.listen( server ); var port = process.env.PORT || 3000; server.listen(port, function () { console.log('Server listening at port %d', port); }); io.on('connection', function (socket) { console.log('user connected'); }); 客户 <script src="{{ […]

如何通过socket.io设置一个安全的websocket(ssl / wss)?

一切正常,没有ssl连接。 在我设置之后回复的回复: socket.io-1.4.5.js:1 GET https://domain.com:3000/socket.io/?EIO=3&transport=polling&t=LILwU3l net::ERR_INSECURE_RESPONSE 服务器 node.js v.6.1 的package.json { //…, "dependencies": { "socket.io": "1.4.5" } } server.js 看看如何声明socket.io解决了如何创build一个服务器: https : //github.com/socketio/socket.io/blob/master/lib/index.js#L212 const fs = require('fs'), https = require('https').createServer( { // certificate by godaddy (G2) key : fs.readFileSync('/etc/ssl/private/domain.key'), cert: fs.readFileSync('/etc/ssl/certs/domain.crt') }, (req, res) => { res.writeHead(404); res.end(); }).listen(3000), io = require('socket.io')(https); io.on('connection', (socket) => […]

连接套接字从testing中航行

我试图从摩卡testing风帆套接字连接。 var socketIOClient = require('socket.io-client'); var sailsIOClient = require('sails.io.js'); // Instantiate the socket client (`io`) // (for now, you must explicitly pass in the socket.io client when using this library from Node.js) var io = sailsIOClient(socketIOClient); // Set some options: // (you have to specify the host and port of the Sails backend when using […]

在Socket IO和NodeJS中使用Javascript查找数组中的对象

我有一个在NodeJS中使用数组的用户列表,当我使console.log(用户)它显示数组中存在的用户名:48,但是当使用这个代码search它没有发现任何东西,任何人都可以帮助我吗? 这是我的代码:服务器端: var users=[]; socket.on('user name',function(user_name){ users.push({id:socket.id,user_name:user_name}); len=users.length; len–; //Sending th user Id and List of users io.emit('user entrance',users,users[len].id); io.emit('userslist',users); console.log(users); //it displays id:/#BLABLALBA user_name:48 }); //Sending message to Specific user /*socket.on('send msg',function(data_server){ socket.broadcast.to(data_server.id).emit('get msg',{msg:data_server.msg,id:data_server.id,name:data_server.name}); console.log(data_server.id) });*/ socket.on('check',function(){ var searchTerm = "48", index = ""; for(var i=0;i<users.length;i++){ if (users[i].user_name === searchTerm) { index = users[i].id; […]

在访问Express路线时join一个socket.IO房间

在Express应用程序中访问特定路线时遇到了一些问题, 所以我现在有以下设置: app.js var express = require('express'); var app = express(); var http = require('http').Server(app); var socketio = require('socket.io').listen(http); var socketjs = require(libs + 'sockets/socket.js'); … var server = http.listen(app.get('port'), function() { debug('Taskful server listening on port ' + app.get('port')); log.info('Taskful server listening on port ' + app.get('port')); }); global.socketIO = socketio; socketjs.connect(server); sockets/ socket.js […]