Tag: socket.io

socket.join不起作用(socket.io)

所以,我的socket.join调用什么都不做。 在调用socket.join之后,然后列出套接字所在的房间,套接字只连接到由其id(它自己的房间)定义的房间。 function onJoin(room) { console.log("Joining room: " + room); socket.join(room); console.log(socket.id + " now in rooms ", socket.rooms); } 会打印例如: > Joining room: 5aba92759b9ffa9fdf579714d6aa125ddb05cb1172611331775e7a69dab37258 > Q6D4h17DvdOZrbrEAAAC now in rooms { Q6D4h17DvdOZrbrEAAAC: 'Q6D4h17DvdOZrbrEAAAC' } 如果它有所作为,这里是我的套接字服务器是如何创build的: //app.js var app = express(); var http = require('http'); var server = http.Server(app); var io = require('socket.io')(server); var chat = […]

socket.emit不发送消息给发件人

'socket.emit '不发送消息给发送它的客户端 'socket.broadcast.emit'将消息发送给包括发件人在内的所有客户端。 我无法弄清楚我在这里错过了什么。 对于第二种情况,我在发送消息时检查了socket.id,并在接收到响应时进行了logging,结果是一样的 socket.js var socket = require('socket.io')(), socketApi = {}; socketApi.io = socket; socketApi.io.on('connection',(client) => { client.on('clientMessage', (msg) => { console.log('hi'); client.emit('serverMessage',msg); }) client.on('disconnect',() => { socketApi.io.emit('serverMessage','client is disconnected'); console.log('disconnected'); }) }) module.exports = socketApi; client.js getServerResponse() { socket.on('serverMessage',(msg) => { console.log(msg); }) }

使用Angular 4和Nodejs检测服务器连接丢失的最佳方法

本质上,我试图找出最好的方法来确保用户连接到服务器/互联网,从而能够在我的应用程序中无误地发出请求。 我遇到了各种各样的解决scheme,但我不能真正决定什么是最好的performance或有用的。 Websockets,使用Socket.io为每个客户端保持与服务器的开放连接。 也开启了我的应用程序实时更新的可能性,这可能是未来的一件好事。 但是,拥有大量的开放式套接字肯定会影响性能。 轮询,所以在我的API中有一个端点,angular度的应用程序每隔5秒左右检查用户连接。 再一次,似乎是不是一个好主意是击中服务器负载。 等待一个错误,然后开始轮询每隔几秒钟等待连接重新build立。 以上是一点点改变。 但是,您仍在等待用户失败,这对用户体验不利。 有没有人在这个问题上有任何知情的投入? 谢谢

Socket.io和MEAN.io

我试图通过socket.io做前端angularjs和后端节点之间的通信。 应用程序build立在Mean.io锅炉板上。 套接字无法连接到后端。 这是我的代码 Angular.js <script src="/socket.io/socket.io.js"></script> <script> var socket = io('localhost:3000'); console.log('——–>' , socket) socket.emit('new', { data: 'asd' }); socket.on('hi', function (data) { alert('socket connected hi called'); console.log('===================== ============== data',data); }); socket.on('broadcast', function (data) { console.log('===================== ============== data',data); }); </script> Node.js的 MeanStarter.register(function (app, users, system, database, http) { var io = require('./server/config/socketio')(http); io.on('connection', function […]

WordPress插件与Nodejs和Socket.io

我需要你们的build议。 我需要使用Socket.io创buildWordPress聊天插件。 但是socket.io需要运行一个nodejs服务器。 我的问题是大部分WordPress用户没有可以运行nodejs的服务器,而且大部分托pipe软件包都是托pipe的。 所以我发现有一些名为socket io php emitter的库。 但是对于那些也他们需要一些PHP扩展,大多数服务器没有默认function。 我相信肯定有办法做到这一点。 由于我们使用REST API和WordPress使用ReactJS等做了很多事情,所以对任何事情都是开放的。 我只需要一个使用JavaScript开发的聊天插件。 我打开使用像Angular,React的任何js框架。 但我不知道如何使用WordPress插件。 如果我不能用js做这个,我可以用PHP代替。 请让我知道你的想法。 请给我一些指导。 谢谢

与ssl socket.io不工作

我有一个简单的node.js代码为websocket服务器使用socket.io模块,我只是不能使它的工作。 服务器运行时没有错误,但是当试图从浏览器连接时,我得到了“SOCKET ERROR:{”isTrusted“:true}”错误(我没有使用自签名证书,而是经过testing并被浏览器信任的Symantec证书) 。 这是我的代码: var fs = require( 'fs' ) ; var app = require('express')(); var https = require('https'); var server = https.createServer({ key: fs.readFileSync('cert.key'), cert: fs.readFileSync('cert.cer'), },app); server.listen(50100); var io = require('socket.io').listen(server,{pingTimeout: 7000, pingInterval: 10000}); io.sockets.on('connection',function (socket) { console.log('new connection'); }); 在客户端,我使用标准的Java脚本“var WS = new WebSocket(wsUri);”和wsUri是“wss:// siteaddress:50100”。 我尝试了与“ws”节点模块的代码,它似乎工作正常,但“WS”模块并没有我需要的所有方法(除非我失去了一些东西 – 我需要能够发送消息到选定的套接字或所有套接字并从套接字连接的客户端发送一些信息)。 我已经尝试了所有的build议在node.js,socket.io与SSL,但没有一个为我工作。 尝试debugging通过DEBUG = […]

socket.io – 运输closures

我们的实时聊天服务由客户端socket.io连接组成,这些连接在整个“随机”客户端断开连接,并在“传输closures”的服务器端断开连接。 当服务器不能再ping通客户端和用户分别注销时,我们偶尔会看到“ping timeout”和“namespace disonnect”。 我们正在努力理解为什么“运输closures”断开正在发生。 这里是客户端用于连接的套接字选项, var socketOptions = { transports: ['websocket'], query: 'token=' + JSON.stringify(token) + '&member=' + JSON.stringify(memberService.currentMember) + '&isBrowser=' + isBrowser + '&isBrowserFocused=' + isBrowserFocused, reconnectionAttempts: 5 } 有任何想法吗? 谢谢!

Azure +套接字IO产生错误404

NodeJS和socket.io似乎工作正常,但检查日志,我可以看到“HTTP错误404.0 – 找不到”的错误,我不能确定为什么会发生。 例如,我的完整url在nodejs托pipe是sample-nodejs.azurewebsites.net,我得到以下错误: 更新与更多信息: 我尝试了设置服务器(使用或不使用expression式)的不同组合,但我总是得到相同的结果。 我像这样初始化我的服务器: var http = require('http'); const PORT = process.env.PORT || 1337; var server = http.createServer(); var io = require('socket.io')(server); server.listen(PORT); io.sockets.on('connection', function(socket) { … }); 我通过当前最新的2.0.3使用socket.io 1.7.4。 我得到同样的问题。 debugging客户端似乎很好,但从azure“日志stream”,我可以看到随机(没有实现模式)检查错误HTTP 404.0 – 找不到错误,并从https:// sample-nodejs:80 / socket请求URL .io /?EIO = 3&transport = polling&a .. 是不是很奇怪,因为服务器的完整path是sample-nodejs.azurewebsites.net?

使用socketio与反应redux

我build立一个小型的聊天应用程序使用反应,redux,socketio和节点与mongoose。 正常情况下,redux通过动作(使API调用和接收数据)stream动并分派数据。 但在我的情况下,套接字将发射到某个事件,但它不会返回数据,直到我们手动发射来自后端的数据。 所以要实现合适的reduxstream程,我应该添加一个套接字事件来检索数据(来自后端),然后调度它或有任何其他适当的方式来实现这一点? 这里是我打算在Actions文件中做的一个示例代码 function sendMessage(data) { return { type: SEND_MESSAGE, payload: data }; } export const sendNewMessage = (socket,data) => { return dispatch => { socket.emit("send message",data); socket.on("new message",function(data){ dispatch(sendMessage(data)); }); }; };

socket.io发射到所有的房间,而不是指定的

我是新的节点和套接字io。 我试图为我自己的应用程序实现一个实时通知系统。 所以,使用node,express和socket io,代码如下: 服务器端代码: io.on('connection', function (socket) { socket.on('subscribe', function(room) { socket.join(room); }); socket.on('unsubscribe', function(room) { socket.leave(room); }); }); 客户端代码: var sio = io.connect('http://localhost:9000'); var ch1 = sio.emit('subscribe', 'channel1'); ch1.on('log', function (data) { console.log('channel1: ', data); }); var ch2 = sio.emit('subscribe', 'channel2'); ch2.on('log', function (data) { console.log('channel2: ', data); }); 我从一条路线(快车)发射/发射事件,例如: app.get('/', function(req, res) […]