Tag: socket.io

通过socket.io传输一个文本文件的内容会产生一个ArrayBuffer对象

我是一个socket.io的新手,对node.js暴露也很less 所以我从简单的聊天应用程序开始,并build立了自己的方式 当消息来自另一个客户端时,我可以将短信从服务器发送到客户端,就像聊天演示应用一样 但是,当试图让服务器读取一个本地文件并通过使用io.emit发送这个内容时,客户端收到的东西似乎是ArrayBuffer一个实例,它在任何情况下都会混淆JSONparsing器 更具体地说,服务器端呢 fs.watch('status.json', function(event, filename){ fs.readFile('status.json', function(err, data){ if (err) throw err; io.emit("r2lab status", data); }); }); 和客户端呢 socket.on('r2lab status', function(json){ console.log("received JSON nodes_info " + json); var nodes_info = JSON.parse(json); /* etc.. */ 在运行时在控制台中触发这个 received JSON nodes_info [object ArrayBuffer] r2lab.html:1 Uncaught SyntaxError: Unexpected token o … 由于逻辑工作,当我得到我的input另一个来源而不是文件,这一切都强烈build议我从readFile获取的data不是一个纯string,但某种实例,以某种方式使其到客户端; 就像我打开我的input文件在二进制文件或东西。 任何人都可以提出一种方法来获得JSON.parse()以满足这种情况? 服务器端或客户端,无论哪种方式对我来说都可以。 非常感谢

socket.io传输是“轮询”而不是“websocket”在azure色

我在azure色的网站和configuration面板中启用的websockets有一个非常规的计划。 我使用socket.io和node.js. 客户端和服务器都使用“轮询”作为其传输,而不是websocket。 在服务器上,我有这些行,他们输出“轮询”。 setInterval(function(){ console.log(socket.conn.transport.name); }, 2000); 在localhost上使用的是websocket。 我已经尝试了在其他post中提出的事情,像这样: Socket.io连接恢复到轮询,从不会触发“连接”处理程序 ,但他们确实解决了这个问题。 有没有办法使azure色的工作使用websocket作为运输。

答复缓慢,答复node.js

我是全新的node.js和,我觉得我做了一些不正确的事情,但我有一个更好的答案search,然后有其他语言出于某种原因。 基本上我使用一个包裹c ++插件的节点做一些工作,然后我想通过websocket发送它,然后再对其进行一些额外的parsing。 当额外的parsing是同步完成时,立即发送(如预期)。 当我在一个承诺(这是第三方模块为我所做的)承诺工作之后,调用完成的callback花费很长的时间。 喜欢5-10秒。 代码如下: var addon = require('…'); // Node wrapped C++ module … var server = http.createServer(){…}; var ios = io.listen(server); function someFunction(args) { console.log("Preparing to call some function"); someOtherFunction(args).then(funtction(val) { console.log("Sending val over websocket…."); ios.sockets.emit('thing', val); } } function someOtherFunction(args) { return new Promise(function(resolve, reject) { //logic resolve(someVal); console.log("Done with […]

mongoose更新总是给我TypeError:不能设置未定义的属性'__v'

我试图更新一个socketId为''每当用户断开连接。 但不知何故,我总是得到这个错误 update.$setOnInsert[this.schema.options.versionKey] = 0; ^ TypeError: Cannot set property '__v' of undefined 例如,如果有人被断开,我的目标 socketId = ZH_Ic0zD8QkmNYuJAAAE; will be socketId = ''; 这是代码 socket.on('disconnect', function() { console.log(socket.id); var disconnectSocketId = ''; User.findOneAndUpdate({socketId: socket.id}, disconnectSocketId, {upsert: true, new: true}, function(err, doc) { if (err) { return console.error } console.log(doc.socketId); }); });

如何在不运行socket.io(node.js)中的服务器时检查从客户端连接

我使用node.js和socket.io从MySQL获取数据。 我已经连接到mysql的sussessfully。 文件server.js var mysql = require('mysql') var io = require('socket.io').listen(3000) var monitorio = require('monitor.io') io.use(monitorio({ port: 8000 })); var db = mysql.createConnection({ host: 'localhost', user: 'root', password : '12345678', database: 'test' }) db.connect(function(err){ if (err) console.log(err) }) var socketCount = 0 io.sockets.on('connection', function(socket){ socketCount++ io.sockets.emit('users connected', socketCount) socket.on('disconnect', function() { socketCount– io.sockets.emit('users connected', socketCount) […]

如何在socket.io中检测客户端的套接字服务器授权失败?

我想使用socket = io.connect()将一个js套接字客户端连接到socket.io服务器。 但是在服务器端,我使用io.use()方法来检查这个套接字连接是否包含cookie。 如果套接字初始握手不包含cookie,则限制套接字服务器上的请求进行连接。 通过传递next(new Error("Authentication Error")) 。 但即时通讯不能捕捉客户端的这个错误。 我想通知客户端无效的login会话并重新login。 谢谢

Socket.io serverside广播

我想更新服务器上的数组并将其广播到所有客户端。 我面临的问题是我需要客户端参数来广播。 在服务器上: var socket = io.listen(8000); var plateaus = []; setInterval(function () { plateaus.push('new data'); — send the updated array to all clients — }, 1000); socket.sockets.on("connection", setEventListeners); function setEventListeners(client) // loadExistingPlayer(client); <- normally I use the client param } 如何广播更新的数组? 非常感谢!

Socket在3-5分钟后停止stream式传输

我使用web工作socket.iostream图像到服务器端,图像大约500k,我每秒发布一个图像的Web工作stream进行。 服务器端会统计它收到的图片数量。 但是,系统将在3-5分钟后停止播放。 我用var socket = io.connect('http://localhost:3000',{reconnection: false,forceNew: true}); 强制重新连接,但它仍然遭受同样的问题。 我使用笔记本电脑作为客户端和服务器。 任何想法为什么?

Socket.io处理中间件错误

我有以下代码: io.use(function (socket, next) { if (socket.auth) // user has already authed next(); // success next(new Error('not authorized')); }); 错误在哪里结束?

在socket.io中断开连接后更新node.js中的数组

我正在尝试创build一个新的socket.io实时分析连接。 我有两种types的用户。 普通用户及其驱动程序。 这是授权的代码 io.configure(function() { io.set('authorization', function(handshake, callback) { var userId = handshakeData.query.userId; var type = handshakeData.query.type; var accessKey = handshakeData.query.accessKey; var query = ""; if(type = '') query = 'SELECT * FROM users WHERE id = ' + userId + ' AND accessKey = ' + accessKey; else query = 'SELECT * FROM […]