Articles of socket.io

在Node.JS上跟踪系统

我正在Node中构build一个跟踪系统,需要一些帮助来理解使用跟踪脚本的第三方将如何连接到Node应用程序。 最初,我已经设置了一个页面来使用Socket.io连接到应用程序,但是如果客户端页面托pipe在节点服务器上,该解决scheme似乎只能工作。 因此,例如,在第三方网站上,他们将拥有: http://node.appserver.com:8080/tracker.js 该脚本将从网站收集数据,然后通过socket.io连接到应用程序,但我似乎无法得到任何回应,因为该应用程序正在监听一个index.html文件与应用程序本身的请求,而不是来自tracker.js脚本。 下面是我想通过运行应用程序的stream程: http://www.evernote.com/shard/s7/sh/56f88de2-f1c0-470b-9169-c7aca1479037/92b00f81ff86eebd4add6f6f68053a50 tracker.js将使用以下连接: $.getScript('/socket.io/socket.io.js', function(data){ var socket = io.connect('http://node.appserver.com:8080'); socket.emit('adTracker', { adServer: 'datalunk', zone : 'top_home', referingURL : 'comple.com' } ); }); 然后,应用程序看起来像这样: var app = require('http').createServer(handler) , io = require('socket.io').listen(app) , fs = require('fs') app.listen(8080); io.configure(function () { io.set('authorization', function (handshakeData, callback) { if (handshakeData.xdomain) { callback('Cross-domain connections are […]

无法将node.js中的socket.io连接到tls

我已经googlesearch和stackoverflow,任何线程相关的socket.io + tls,或node.js + tls,或ssl,等等…但我找不到任何方式build立我所需要的: 通过socket.io连接到客户端并使用tls的node.js服务器(仅需要服务器身份validation) 到目前为止,我已经连接服务器和客户端,而不使用tls。 当我创build我的node.js服务器(在端口3000监听),并使用tls我可以使用命令: openssl s_client -connect localhost:3000 和everthing似乎是好的,但去了我试图连接我的socket.io客户端我总是有一个错误。 这是我简单的服务器代码: var tls = require('tls'); var fs = require('fs'); var options = { key: fs.readFileSync('evServer-key.pem'), cert: fs.readFileSync('evServer-cert.pem'), requestCert: false, }; var server = tls.createServer(options, function(cleartextStream) { console.log('server connected', cleartextStream.authorized ? 'authorized' : 'unauthorized'); cleartextStream.write("welcome!\n"); cleartextStream.setEncoding('utf8'); cleartextStream.pipe(cleartextStream); }); io = require('socket.io').listen(server); server.listen(3000, function() […]

错误:找不到模块'zeparser'

我已经成功安装了node.js。 我已经创build了该文件 var http = require('http'); var url=require('url'); var fs=require('fs'); var io = require('socket.io'); http.createServer(function (req, res) { fs.readFile('/var/www/nodeJS/client.html' , function ( err, data ) { if ( err ) { console.log( err ); res.writeHead(500); return res.end( 'Error loading client.html' ); } res.writeHead( 200 ); res.end( data ); }); }).listen(8124, '127.0.0.1'); io.listen(http); io.sockets.on('connection', function (socket) […]

你可以依靠socket.id作为一个UID

请原谅我的无知,第二天的node.js / socket.io 我正在寻找一种方法来唯一标识用户在数据库排队系统中使用。 我读了很多关于使用Express的会话cookie,但是我注意到socket.id似乎是socket.io已经使用的UID。 因此,我一直使用socket.id来标识数据库中的用户,并创build私人“房间”来与他们进行通信。 这是一个可怕的主意吗?

延迟socket.io响应,并且“警告 – websocket连接无效”

我正在AWS EC2实例上运行nodeJS + Express + socket.io + httpd应用程序。 在加载页面时,logging器提供以下信息: GET / 200 2ms – 1.23kb GET /javascripts/script.js 304 1ms debug – served static content /socket.io.js GET /stylesheets/style.css 304 1ms GET /stylesheets/style.css 304 1ms GET /images/052.png 304 1ms GET /Candara.ttf 304 1ms debug – client authorized info – handshake authorized EgWLPeyO2uiCTSui01CP debug – setting request GET […]

Socket.io为所有客户端分配相同的ID

我正在尝试将所有连接的客户端保存在一个对象中。 但是,正如我所知,连接的客户端都具有相同的ID。 因此,如果对象connections具有所有连接的套接字,当我尝试发送消息到connections['mac']它只是出现在我的屏幕上,由我发送给我。 这是validation码: app.post('/auth', function(req, res){ // routes.auth(hash, db, io, pseudoArray, connections) var username = req.body.username, password = req.body.password; if (username != "" && password != ""){ authenticate(username, password, db, hash, function(err, user){ if (user) { // Regenerate session when signing in // to prevent fixation console.log('user authenticated'); req.session.regenerate(function(){ req.session.user = user.name; req.session.success = […]

带承诺或asynchronouscallback的Socket.io

这可能是一种反模式,但使用socket.io从客户端发送数据到服务器时,模拟promise callback的最佳方法是什么? 对于某些事件,我会非常喜欢它的行为像一个正常的获取请求,所以客户端发送数据到服务器和服务器可以答复一个响应,然后解决或拒绝承诺。

使用websocket将Arduino连接到nodejs服务器

首先,我有: – 一个自主的arduino(电池+ wifi盾) – 一个nodejs服务器+ socket.io模块 我想将我的Arduino连接到nodejs服务器,并添加实时的可能性。 我不知道是否有可能在浏览器(如浏览器)上使用websocket(客户端),以允许服务器端在客户端调用方法如下: socket.on(myMethod,…) 我看到像jhonny-five的noduino图书馆,但总是使用串行端口(与USB)。

使用UDP套接字的JavaScript应用程序 – NodeJS和SocketIO

我想开发一个JavaScript应用程序,它应该能够通过UDP套接字与其他第三方应用程序进行通信,并通过本地浏览器窗口呈现一些数据。 据我所知,我应该使用NodeJS的UDP套接字连接,我已经testing了它的示例UDPserver.js的例子,似乎很好。 我现在的问题是如何将从UDP服务器(在本地在NodeJS控制台上运行)接收到的数据传递到我的主应用程序,该应用程序将在浏览器上运行。 我读过,我必须使用Socket.IO来实现这个实时连接。 那么,就像在同一台机器上同时运行一个客户端应用程序和一个服务器应用程序一样? socketIO如何连接这两个部分? 我应该使用WebSockets桥接我的应用程序与NodeJS或某事? | JQUERY JS | | NODE.JS | | C++ | | | [?] | | [UDP SOCKETS] | | |LOCAL WEB APP| <=====> |UDP SERVER| <—————–> |3RD-PARTY APPS| | (local) | | (local) | | (network) | 有人能为我清理一下吗? 这应该是相对容易的事情,但我是新来的..

在更新状态之后,Reactjs不会复制我的消息

我正在关注这个博客的例子,这个问题在执行之后就引起了我的兴趣 https://github.com/DanialK/ReactJS-Realtime-Chat 总结一下,在通过websocket发送消息之前,消息的状态被更新。 当服务器接收到这个消息时,他们向所有的客户端发送广播,包括我自己。 Thereat,客户端用相同的消息更新状态 为什么这个消息不会出现2次? 我不希望这个消息出现两次,但我想知道为什么会发生 客户代码: socket.on('send:message', this.messageRecieve); … handleMessageSubmit : function(message){ Messages.push(message); this.setState({ messages : Messages }); socket.emit('send:message', message); }, messageRecieve: function(message){ Messages.push(message); this.setState({ messages : Messages }); }, 服务器代码: socket.on('send:message', function (data) { socket.broadcast.emit('send:message', { user: name, text: data.text }); });