Tag: socket.io

用mocha-chai superagenttesting多个同时进行的会话

我正在尝试编写多个套接字连接的testing,我需要多个会话(同时) ,因为它们由服务器端的会话ID标识。 在下面的例子client1将连接和握手将通过与会话ID的cookie,所以我可以使用express-socket.io会话获取该用户的会话数据…. 我遇到的问题是,当我想连接第二个套接字,握手数据传递通过显然将是相同的第一个套接字。 我不能只发送一个注销请求,并更改用户,因为我试图testing多人游戏function。 var agent = chai.request.agent(app) describe("authentication", function () { it('login as user', function (done) { agent .post('/login') .send({ username: username, password: password }) .then(function (res) { expect(res).to.have.status(200); expect(res).to.have.cookie('connect.sid'); done() }) .catch(function (err) { done(err) }) }); }) describe("socket tests", function () { var client1, client2; it('can connect to socket', function (done) […]

Socket.io向后兼容服务器

我想在客户端和服务器(浏览器+ Node.js)上更新我的socket.io版本。 我必须使用旧版本的库pipe理旧版客户端。 如何确保socket.io服务器的v2.x与socket.io客户端上的v1.7.2兼容?

如何用Electron连接到Socket.io服务器?

我是node.js的新手,并且正在学习Socket.io的教程。 使用Electron连接到Socket.io服务器的最佳方式是什么?

在nodejs和angularjs中使用套接字

我是新的socket.I有问题,而在我现有的项目中使用套接字。我已经在我的项目中包括socket.io.js文件,也创build使用套接字的工厂。 套接字请求正从angular度方向成功。 我想要做什么时,我的API响应中的东西被改变,它会自动调用并显示结果在我的页面。所以这里是我的代码。我不知道我怎么能实现这个与套接字 app.get('/ttms/getAlertsMessage/:customerid/:timstmp', getCookies, ttms.getAlertsMessage);// route var socket = require('socket.io'); var io = socket.listen(server); app.set('socketio', io); io.on('connection', function (socket) { console.log("==============connected=========")// this shows me connected socket.on('test',function(data){ console.log(data) }) }); 这里是节点api将调用: exports.getAlertsMessage = function(req, res, next) { var customeruuid = req.param('customerid'); var start_time = new Date().getTime(), request = require('request'), api_url = global.common.base_url + 'ams/1.0.0/message/customeruuid/'+customeruuid; var […]

Socket.IO手动“断开”和var范围发射?

有人可以解释如何脱节工程? 在我的控制台日志中,断开连接function在客户端离开游戏时被调用两次。 为什么是这样? 当它发生时,似乎playerName的范围在第二个调用中也是已知的,但不是第一个。 这是打这些电话的客户吗? 另外,它如何知道该范围内的playerName,但在send-message它不知道什么是playerName? (1是playerName) Oct 06 11:57:36 overwatchtracker app/web.1: [RECV] Player disconnected: 1 Oct 06 11:57:36 overwatchtracker app/web.1: [RECV] Player disconnected: undefined Oct 06 11:57:29 overwatchtracker app/web.1: [RECV] Message: undefined asdfasdf 这是我的一些代码: const io = socketIO(server) var clients = [] io.on('connection', (socket) => { var playerName; socket.on('login-user', (name) => { playerName = […]

在使用node.js和mongodb的聊天应用程序中,消息正在为每个页面刷新保存。 热解决?

这里是我的js代码,用于检索已经存在的用户数据,现在我正在检索相同的聊天logging,并在我的内部聊天窗口 这里是我的代码写在index.js文件 io.on('connection', function(socket){ var query = Chat.find({}); query.sort('-created').limit(4).exec( function(err,data){ if (err) { res.send(err); } else{ io.sockets.emit("chat history", data); } }); }); 我正在发送聊天logging,同样在chat.js文件中显示如下 socket.on("chat history", function(data){ for(var i=data.length-1; i >=0; i–){ displaymsgs(data[i]); } }); function displaymsgs(data){ feedback.innerHTML = ""; output.innerHTML += '<p><strong>' + data.username + ':</strong>' + data.message + '</p>'; } 现在我无法获得限制的消息(4),并且每当页面重新加载时,消息也正在加载到数据库。 请给我一个解决scheme,我犯了错误,如何接近它。 先谢谢你。

与Socket.io和Docker无法获得超过980个连接

我无法扩展我的简单的Socket.IO应用程序过去使用Docker的980个并发连接。 但是,如果我在macOS Sierra 10.12.6本地运行它,我可以获得超过3000个连接。 我已经包含了我正在testing的一个简单的SocketIO应用程序的回购: https : //github.com/gsccheng/simple-socketIO-app 我的Docker-for-Macconfiguration为4个CPU和5GB内存。 版本是 Version 17.09.0-ce-mac35 (19611) Channel: stable a98b7c1b7c 我正在使用炮兵版本1.6.0-9加载testing $ artillery run load-test.yaml 我正在显示一些设置的冗余configuration(以显示它们已被考虑)。 这是我的重现步骤。 $ docker build . -t socket-test $ docker run -p 8000:8000 -c 1024 -m 4096M –privileged –ulimit nofile=9000:9000 -it test-socket:latest /bin/sh #> DEBUG=* npm start 高达约980个连接,我会得到像这样的日志: Connected to Socket! socket.io:client writing packet […]

Python的socketIO客户端连接,然后断开连接

我想连接我的Python脚本到我的nodejs套接字服务器。 我的代码看起来像这样 – 节点js(相关部分) – //using socket.io@2.0.3 //PORT 8008 io.on('connection', function(socket){ console.log('connected'); socket.on('disconnect', function(){ }); socket.on('message', function incoming(message){ console.log(message); var data=JSON.parse(message); console.log(data); socket.broadcast.emit('message', message); }); }); python脚本(相关部分) – # using socketIO_client –0.7.2 socketIO = SocketIO('localhost', 8008) socketIO.wait() 我正在连接我的控制台,但之后,我得到错误(在Python方面) – Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/dist-packages/socketIO_client/__init__.py", line 353, in […]

SocketIoClientDotNet – Socket.IO客户端库有时会发出两个连续的事件,有时不会

我正在使用SocketIoClientDotNet – .Net的Socket.IO客户端库,我试图一个接一个地发出两个事件。 有时它发出这两个事件,有时它只发出第一个。 以下是我的代码: socketModel sm = new socketModel(); sm.CHANNEL = "channel_" + cHAT_MESSAGES.SENDER_ID + cHAT_MESSAGES.RECEIVER_ID; sm.DATA = chatMessageModelObj; string serializedData = Newtonsoft.Json.JsonConvert.SerializeObject(sm); var socket = IO.Socket(ConfigurationManager.AppSettings["socketlink"].ToString()); socket.On(Socket.EVENT_CONNECT, () => { socket.Emit("apimessage", serializedData); }); socket.On("apimessage", (data) => { Console.WriteLine(data); socket.Disconnect(); }); socketModel smSecond = new socketModel(); smSecond.CHANNEL = "messagecount_" + userID; if (updateCount == […]

在快速应用程序中使用Vue

我对构buildNode应用程序以及编写Vue是新手,但是我认为可以创build一个小程序来帮助我理解这两个问题。 这个想法很简单。 我试图创build一个可以在屏幕上显示的琐事游戏,用户可以使用手机来select主屏幕上出现的问题的答案。 正在使用Socket.io在服务器和客户端之间发送数据。 目前有两种路由: /和/host 。 连接到/host将生成一个唯一的ID(我将在响应中发送)并创build一个新的游戏实例,通过input主机屏幕上显示的ID来等待“玩家”join。 路线/ index.js exports.host = (req, res) => { let id = generateRandomNumber(1000, 9999); res.render("host", { type: "host", gameId: id }); }; exports.player = (req, res) => { res.render("player", { type: "player" }); }; function generateRandomNumber(min, max) { return Math.floor(Math.random() * (max – min + 1)) + min; […]