Articles of 套接字

Express4 + Socket.io 0.9:不同的客户端获得相同的非广播消息

这是一个通过passport.js使用validation的网站。 两个不同的用户连接不同的浏览器,他们要求有关他们的用户名的信息。 服务器获取信息并使用socket.io发回。 一切都像一个魅力,但如果两个客户端同时加载页面,其中一个的信息去两个浏览器,看起来像服务器正在写在同一个套接字。 服务器端: server.js: var express = require('express'); var app = express(); var http = require('http').createServer(app).listen(8000), io = require('socket.io').listen(http); socket.js: module.exports = function(app, io) { … io.sockets.on('connection', function(socket) { … //Build the information about the user and send it back var userData = userInfo(); socket.emit('userInfo', userData); … } } 客户端(包含在index.ejs中的JavaScript文件): var socket = […]

将消息发送到Socket,从C#客户端到node.js + socket.io服务器

我想通过套接字与c#windows store应用程序客户端发送消息到node.js和socket.io服务器 我的客户端代码是这样的(C#) private async void SendDatatoSocket(string sendTextData) { if (!connected) { StatusText = "Must be connected to send!"; return; } Int32 wordlength = 0; // Gets the UTF-8 string length. try { OutputView = ""; StatusText = "Trying to send data …"; txtblock_showstatus.Text += System.Environment.NewLine; txtblock_showstatus.Text += StatusText; Debug.WriteLine(StatusText); // add a newline to […]

NodeJS崩溃与多个请求

我的nodejs服务器实时地随机崩溃(并且总是在Web Stress Tool上使用10+线程请求)。 以下是我认为是根本原因的代码。 main.js ——– app = express(): ——— app.get('/image/*', actions.download); actions.js var request = require('request'); exports.download = function(req, res){ var url = <Amazon s3 URL>; req.pipe(request(url)).pipe(res); }; 当服务器崩溃时,我在nohup中得到错误 stream.js:94 throw er; // Unhandled stream error in pipe. ^ Error: socket hang up at createHangUpError (http.js:1476:15) at Socket.socketOnEnd [as onend] (http.js:1572:23) at Socket.g (events.js:180:16) […]

我调用Socket.io函数和Uncaught TypeError:undefined不是一个函数

我正在做socket.io聊天应用程序,并在JavaScript中遇到麻烦。 这是我的JavaScript文件(客户端) <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> <script> $(document).ready(function() { // make a new chat div $("#topic_button").click(function(e) { e.preventDefault() var domElement = $('<div class="content"><div class="messages"><ul class = "other_message" class="title"><h3>'+$("#m").val()+'</h3></ul>'+'상대방'+'<div class="my_message">'+'내메시지' +'</div></div><div class="type_div"><form action="" class="chat_form" onsubmit="event.preventDefault();"><input autocomplete="off" /><button class="chat_button">Send</button></form></div></div>'); $("#content").after(domElement); }); // create a new category $("#topic_button").click(function(e){ var $item = $('<div class="item_div"><li>' + $("#m").val() + '</li><button class="item_button">X</button><div></div></div>') […]

使用Express时出现“错误:套接字挂断”

当客户端刷新的同时仍然加载一个页面(所以套接字被终止,而我仍在处理请求)时,节点继续退出。 错误: [ERROR] – Error: socket hang up at createHangUpError (http.js:1472:15) at Socket.socketCloseListener (http.js:1522:23) at Socket.EventEmitter.emit (events.js:95:17) at TCP.close (net.js:465:12) (at lib/Maintenance.js:38) 我试着附加on('error', …到: req对象 listen的返回值(我正在使用Express) 我的get , use和post方法的返回值。 然而,我似乎无法捕捉到这个错误。 它仍然被抛出,没有我的error handling程序反应。 我可能会错过什么?

在Socket.io中获取SSL协议错误:

我在我的应用程序中使用socket.io。 当我工作没有ssl证书,它工作正常。 我是新的nodejs,我不知道,如何添加SSL证书。 有我使用前端的angularjs和后端的nodejs。 socket.io调用不工作,我得到SSL协议错误。 请帮助我,我做错了什么? 我的angularjs代码 var socket = io.connect('https://localhost:3001', { 'reconnect': true, 'reconnection delay': 500, 'secure' : true }); 我的nodejs代码 var fs = require('fs'); var PeerSync = require('./lib/PeerSync'); var HistoricSync = require('./lib/HistoricSync'); var http = require('http'); var https = require('https'); var express = require('express'); var program = require('commander'); var config = require('./config/config'); var […]

angularJS绑定等待input

我正在与Angular JS和Socket.io一起尝试开发一个简单的聊天室。 当没有插入sockets时,我的客户端工作得很好。 然后,我添加套接字通信后,绑定搞乱了。 我input消息并点击发送。 addMessage被触发,然后“聊天消息”套接字事件被触发。 但是,用户界面不会更新,直到我键入另一个字母或再次单击发送。 然后绑定起作用,用户界面添加消息。 有任何想法吗? js文件 //Receive Socket message. //Runs but UI does not update. //UI updates on user's next input $scope.socket.on('chat message', function(msg) { var message = new Message(msg); $scope.messages.splice(0, 0, message); $scope.clear(); }); //Add Message, sends to socket $scope.addMessage = function () { if($scope.validate()) { var message = new […]

Socket.IO – 从客户端发送的消息在服务器和客户端上失败

我正在使用Socket.IO连接从服务器到客户端的实时数据通信平台。 服务器运行的是Node.JS,客户端是使用Atom的Electron的网页forms的桌面应用程序。 我很好地接收客户端的消息,但是当我尝试发送消息时,通过以下格式: window.socket.emit('embed',{'…'}); 服务器触发error handling程序: socket.on('error',function(err) { console.log('client error: '+JSON.stringify(err)); }); 我在我的日志中看到: client error: {} debugging客户端上的Socket.IO会在消息发送时显示日志: [14184:0511/184052:INFO:CONSOLE(1)] "socket.io-client:manager writing packet %j +10s", source: https://cdn.socket.io/socket.io-1.3.5.js (1) [14184:0511/184052:INFO:CONSOLE(1)] "socket.io-parser encoding packet %j +819ms", source: https://cdn.socket.io/socket.io-1.3.5.js (1) [14184:0511/184052:INFO:CONSOLE(1)] "socket.io-parser encoded %j as %s +0ms", source: https://cdn.socket.io/socket.io-1.3.5.js (1) [14184:0511/184052:INFO:CONSOLE(2)] "%cengine.io-client:socket %cflushing %d packets in socket%c +820ms", source: https://cdn.socket.io/socket.io-1.3.5.js […]

NodeJS同步客户端

我使用socket.io和nodejs, 我有一个服务器,我用它作为我的nodeJS服务器。 我想要做的是根据客户端 – >服务器 – >客户端发送的消息移动客户端 例如; client1向服务器发送消息“MOVE-RIGHT”。 服务器将此消息redirect到所有客户端如“MOVE-RIGHT-CLIENT1”,并根据此消息,所有客户端开始将client1移动到正确的方向。 问题是,根据networking状态,所有客户端可能有不同的延迟。 例如,如果服务器 – >客户端1通信在50毫秒内发生,则服务器 – >客户端2通信可能在250毫秒内发生。 因此,客户端1提前将近200毫秒执行此项任务。 所以我们可以说这两个动作是不同步的,因为其中一个动作比其他动作早。 如您所知,客户端和服务器之间的延迟可能因每个客户端而不同,并且对于同一客户端的每条消息也可能不同。 我的问题是,我应该使用哪种方法来同步这些客户端,同时完成他们的工作。 有没有关于这个socket.io或nodejs的任何function? 你会为我推荐什么?

如何在使用iojs创buildhttp请求时捕获EHOSTDOWN套接字错误?

我有一个简单的iojs http服务器,与我的开发机器上的另一个http后端进行通信。 现在我的IP已经改变,后端请求将不会工作,由于错误的IP。 我有(或至less是这样认为)错误pipe理,但是由于未处理的exception,在某些情况下,服务器崩溃: 当执行2个后续请求时,第一个请求会“挂起”,然后第二个请求会使服务器崩溃: events.js:141 throw er; // Unhandled 'error' event ^ Error: connect EHOSTDOWN 192.168.1.11:80 – Local (192.168.1.10:54125) at Object.exports._errnoException (util.js:846:11) at exports._exceptionWithHostPort (util.js:869:20) at connect (net.js:840:14) at lookupAndConnect (net.js:933:5) at Socket.connect (net.js:902:5) at Agent.exports.connect.exports.createConnection (net.js:61:35) at Agent.createSocket (_http_agent.js:177:16) at Agent.addRequest (_http_agent.js:147:23) at new ClientRequest (_http_client.js:132:16) at Object.exports.request (http.js:30:10) 有问题的错误将不会触发backRequest.on("error", errFn) ,它不是一个标准错误,如function(err, response, […]