Tag: socket.io

Socket.io有人可以帮助我为什么连接/断开消息出现两次?

下面是我的服务器端代码,我想要显示,如果用户连接或断开。但用户连接和用户断开消息出现两次。 有人能帮我吗为什么出现两次? var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res) { res.sendfile('index.html'); }); io.on('connect', function(socket) { socket.broadcast.emit('chat message', 'a user connected!'); socket.on('disconnect', function() { socket.broadcast.emit('chat message', 'user disconnected'); }); socket.on('chat message', function(msg) { socket.broadcast.emit('chat message', msg); }); }); http.listen(3000, function() { console.log('listening on *:3000'); }); 客户代码 <!doctype html> […]

服务器没有收到客户端的socket.io消息

我开始了一个简单的express + socket.io项目。 在服务器上,我注册到套接字的“连接”事件,然后我发送消息给客户端。 这很好。 当我从服务器接收到客户端的消息时,在这个事件处理程序中,我做了socket.emit('message','some text'); 这个消息不会到达服务器。 我知道这应该是非常简单的,因此我想我错过了一些愚蠢的东西。 任何帮助赞赏。 服务器代码: var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function (req, res) { res.sendfile('index.html'); }); io.on('connection', function (socket) { console.log('a user connected'); io.emit('server-message', 'hello socket.io server'); }); io.on('message', function(message) { console.log(message); }); 客户代码: window.socket = io.connect('http://localhost:3000'); socket.on('server-message', function (message) { […]

尝试获取socket.io时出现错误404

我正在编写一个节点服务器,它使用socket.io提供一个网页。 但是当我加载页面时,控制台显示错误 (index):6 GET http:// localhost:3000 / socket.io / socket.io.js 这并不令人惊讶,其次是: (索引):51 Uncaught ReferenceError:io未定义 当我检查networking选项卡中页面加载的文件时,它显示了socket.io的错误404。 但令人惊讶的是,当我启动其他程序,我使用socket.io,一切正常。 唯一的区别就是对于这个,我用快递。 这是我的代码: app.js: var express = require('express'); var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); app.use(express.static("./app")); app.get("/", function(req, res, next) { res.sendFile(__dirname + "/index.html") }); app.listen(3000); console.log("Server started in http://localhost:" + 3000); io.on('connection', function(socket){ socket.emit('news', […]

NodeJS快速抛出RangeNotSatisfiableError,如何重现呢?

每天随机我得到这些错误,这使得节点不响应。 我无法复制它。 我该怎么做? Jul 21 12:38:38 localhost Pchat.log RangeNotSatisfiableError: Range Not Satisfiable Jul 21 12:38:38 localhost Pchat.log at SendStream.error (/home/ubuntu/node_modules/send/index.js:275:31) Jul 21 12:38:38 localhost Pchat.log at SendStream.send (/home/ubuntu/node_modules/send/index.js:618:19) Jul 21 12:38:38 localhost Pchat.log at onstat (/home/ubuntu/node_modules/send/index.js:677:10) Jul 21 12:38:38 localhost Pchat.log at FSReqWrap.oncomplete (fs.js:83:15) Jul 21 12:38:38 localhost Pchat.log RangeNotSatisfiableError: Range Not Satisfiable Jul 21 […]

Socket.io保存dynamic客房,并保持客户端连接节点JS

我相当新socket.io。 我通过他们的文档页面和一些post在这里,但我坚持我的方法。 我正在计划一个测验应用程序,pipe理员可以为每个主题创builddynamic空间,用户可以join。 pipe理员将发布问题,用户在PDAlocking答案选项卡之前得到10秒的回答。 pipe理员稍后将通过pipe理员CP发布答案。 现在我的问题。 1.我们可以从pipe理面板创builddynamic的房间,并将房间名称存储在数据库中,以便客户以后可以join同一个房间? 2.我如何保持客户连接,直到答案发布后的某个时间? 没有客户端断开连接。 //类似于whatsapp组 3.即使客户断开连接,我是否可以join存储在数据库中的房间元数据的客户端? 4.如果10个客户端回答我的问题,服务器可以parsing他们的数据并将他们的ID存储在数据库中吗? 欣赏任何帮助。 我不知道如何去做这件事。 我跟着很多教程,但没有达到我所需要的。 对不起,冗长的职位,但任何线索肯定会帮助我 TIA

套接字io:如何传递参数来解除套接字事件?

我正在使用套接字io来构build聊天应用程序。 当“用户x”从聊天中断我想打印到控制台日志:“再见用户x”。 为了发生这种情况,我需要将user_name作为parameter passing给disconnect事件。 问题是我不知道如何将数据传递给断开连接事件: socket.on('disconnect', function(){…}) 当用户断开连接时被自动调用。 我需要有类似的东西 socket.on('disconnect', function(user_name){ console.log('bye '+user_name); }) 但如果这是可能的(是吗?)那么我怎么能通过这个参数在客户端(我的情况,angular)? 我的完整套接字io server.js代码如下。 io.on('connection', function(socket){ io.emit('chat_message', "welcome"); socket.on('room', function(room) { socket.join(room); }); socket.on('chat_message', function(data){ socket.broadcast.to(data.room).emit('chat_message',data.msg); }); socket.on('info_message', function(data){ socket.broadcast.to(data.room).emit('info_message',data.msg); }); socket.on('disconnect', function(){ console.log('bye '+socket.id); io.emit('chat message', "Bye"); }); });

与socket.io配对 – 依靠setInterval或套接字调用?

我正在开发一个游戏,我的后端是用NodeJS编写的,而我使用socket.io来进行实时通信。 我的比赛的特点之一是配对。 基本上,如果有两个以上的玩家在比赛期间,我的应用程序将为他们创build一个游戏室(特殊socket.io室)并开始游戏。 有两种方法可以做到这一点: 在NodeJS上创build一个setInterval。 在间隔中,检查playersInMatchmaking数组。 如果arrays中有两名以上的玩家,则创build游戏室。 只要服务器在线,我就会循环。 每次我接到socket.on("matchmaking start")或socket.on("matchmaking stop")的调用时,不要依赖setInterval,而要检查playersInMatchmaking数组 使用某种方法有什么好处吗? setInterval听起来更容易,因为我可以将匹配algorithm从套接字逻辑中分离出来,然而,由于匹配algorithm会在循环中运行,而不是套接字事件,所以性能会降低。 你怎么看? 你有任何其他的想法会更好吗?

通过socketio发送webRTC getUserMedia webCamstream

我有这段代码: navigator.mediaDevices.getUserMedia(param) .then(function(stream) { video.srcObject = stream; video.play(); } }) .catch(function (err) {}); 在这个代码中,我想通过socketio发送这个stream到nodejs服务器,这样我就可以在接收端使用它来显示video元素。 我怎样才能做到这一点?

Node.js和socket.on数据

我有node.js中的数据和socket.io问题。 可以在socket.on函数外部获取数据吗? 例: var newdata=new Array(); $(document).ready(function(){ socket.on('Select', function(data){ //console.log(data.products[0][1]); for(i=0; i<data.products[0].length; i++) { newdata.push(data.products[0][i]); } console.log(newdata); //array with objects }); console.log(newdata); //undefined – here i want to get data

Node.js – 使用多个html文件连接到相同的服务器,相同的用户

我想要做的是将我的HTML5 canvas游戏整合到一个单独的web界面中。 当按下button时,html游戏填满<div id="game"> 。 但我只在我的javascript文件中定义了我的node.js。 现在我可以在HTML2文件中定义它,但似乎会创build2个独立的连接。 有只有1个连接,这样做的方法吗? 简单地说 – 2个独立的HTML / JavaScript文件具有相同的确切连接 谢谢 HTML <div id="game"> <button id="gameFile">MyGame</button> </div> 使用Javascript var socket = io('http://192.168.0.5:2000'); socket.on('connect', function() { socket.emit('login', { }); }); $('#gameFile').click(function(event){ document.getElementById("game").innerHTML='<object type="text/html" data="games/myGame/index.html" style="width:100%; height: 100%;" ></object>'; }); HTML2(games / myGame / index.html) <canvas id="myCanvas"> Your browser does not support the HTML5 […]