Tag: socket.io

什么对象可以在socket.io中发射

使用socket.io库,可以使用服务器端的socket.emit方法将哪些对象传输到客户端? 例如, socket.io站点提供了一个如下所示的示例 socket.emit('news', { hello: 'world' }); 但是,在使用emit方法时,我找不到以下问题的任何文档: 我可以使用emit来传输“任何”的JavaScript对象,说方法,复杂的属性等? 我应该将我的数据/对象转换为JSON,然后传输JSONstring。 这当然会对可以传送给客户端的对象有一些限制。 当socket.io实际传输到客户端时,是否使用JSON转换?

Node.js,Socket.io:如何获取客户端浏览器的语言?

我正在尝试获取用户使用的语言,以便使用socket.io和node.js为播放video提供正确的声音文件。 我是一个总的初学者与node.js和socket.io。 我用“navigator.language”在客户端获得了语言,并且想要在连接/握手到socket.io时发送它。 var language = navigator.language; var socket = io.connect('http://localhost:1337', { query: language }); 而在服务器端: io.set('authorization', function(handshakeData, cb) { console.log(handshakeData.query); cb(null, true);}); 但是我得到的是: {'en-US': 'undefined', t: '1396002389530'} 我想第二个属性“t”是已添加的握手标识。 但是,如何访问“en-US”? 我的第二种方法是使用模块“locale”( https://github.com/jed/locale ),但是当我使用它时,我总是得到相同的语言,所以我觉得它总是findSERVER的语言。 我想我在请求/响应处理程序中使用它,当一个新的客户端请求该页面,并发送其http头。 var handler = function(req, res) { lang = new locale.Locales(req.headers["accept-language"]); lang=lang.best(supported); console.log(pf); } 我希望你得到我想要做的,也许知道一个更好的解决scheme。 先谢谢你。

如何与快递和socket.ioauthentication与TOKENS而不是与COOKIES。

我正在构build一个实时移动应用程序(本机),我有兴趣从用户login屏幕启动应用程序,然后继续。 我想我需要Express + primus与socket.io(或sockjs)+ passport.socketio + redis(不是100%确定我需要redis)来build立我的后端。 我甚至发现这个一步一步的教程是非常有帮助的,它使我一步一步地做出一个安全的API。 我的问题是双重的: 我怎样才能调整这个例子来使用TOKENS而不是cookies(因为我正在构build一个原生的移动应用程序,而不是一个浏览器的networking应用程序), 并根据这个更安全 。 如何使用socket.io绑定express – 换句话说,socket.io如何知道用户是否被authentication? 我欢迎任何意见或build议。 谢谢。

为什么我的socket.io在服务器重启时得到连接?

在我的节点server.js文件我设置socket.io: var io = require('socket.io').listen(socketPort); io.sockets.on('connection', function (socket) { console.log(socket.id); }); 所以当客户端连接的时候这个工作正常,但是当我重新启动我的节点服务器时,它会再次调用这个函数,以前连接的所有客户端。 也就是说,caching客户端的东西。 但我不想这样做。 我希望它从新鲜的启动服务器。 并且每个客户端连接只调用一次该事件(当客户端启动浏览器或刷新浏览器时)。 或者至less,我想要一个标志,知道这是我重新启动我的服务器后发生的连接。 有什么build议么? 也许有一种方法,当我的服务器重新启动时,我可以刷出套接字? 我看到这个线程: socket.io重新连接后创build一个更多的连接但是我不知道“iosocket.once('connect',function(){})”来自我使用io.sockets

使用django-websocket-redis的asynchronousDjango

我试图用django-websocket-redis,我不明白它是如何工作,即使阅读文档..部分客户端(JavaScript /模板)很容易理解,但我想发送数据消息从一个客户端到其他我在这里阻止.. 连接每个客户端: var ws = new WebSocket('ws://localhost:8000/ws/foobar?subscribe-group'); ws.onopen = function(e) { console.log("websocket connected"); }; ws.onclose = function(e) { console.log("connection closed"); }; 如何pipe理我的views.py来创build它们之间的链接? 使用NodeJS,我使用这段代码将客户端连接在一起: io.sockets.on('connection', function (socket) { var data={"action": "connexion", "session_id": socket.id,}; socket.emit('message',data); socket.on('message', function(socket){ if (socket.action == "test") { io.sockets.socket(socket.code).emit('message',{"action": "move"}); //the socket.code is the session_id of the client one transmitted by a […]

得到TypeError:无法读取未定义的属性'on'

在执行danielnill示例时出现以下错误 当我在这个例子中添加连接动作和客户端代码时,我得到了这个错误。 错误: /home/oneadmin/Desktop/test-projects/nodejs/basic-example/server.js:40 io.sockets.on('connection', function(socket){ ^ TypeError: Cannot read property 'on' of undefined at Object.<anonymous> (/home/oneadmin/Desktop/test-projects/nodejs/basic-example/server.js:40:11) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:349:32) at Function.Module._load (module.js:305:12) at Function.Module.runMain (module.js:490:10) at startup (node.js:124:16) at node.js:807:3 server.js var http = require("http"); var url = require('url'); var fs = require('fs'); var io = require('socket.io'); var […]

NodeJS&Socket.io:控制器中的套接字

我有这个代码: app.js: 'use strict' var express = require('express') , http = require('http') , path = require('path') , app = express() , fs = require('fs') , engine = require('ejs-locals') , io = require('socket.io').listen(3872, {log:true}) , connections = 0; app.set('port', 80); app.set('views', __dirname + '/views'); app.engine('ejs', engine); app.set('view engine', 'ejs'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser('secret')); app.use(express.session()); app.use(app.router); […]

MySql连接错误使用Node.js

连接丢失:服务器closures连接 使用Node.js使用node_modules mysql 我安装了npm的nodemon模块来连续监视我的node.js应用程序,并在服务器崩溃时重启服务器,当服务器崩溃时,应用程序本身不会重新启动。

从phonegap连接到一个socket.io服务器

我需要一种方法来连接到一个通用的(或至lessiOS和Android)phonegap应用程序的socket.io服务器。 在浏览器中,我将从节点脚本提供html页面,这将允许我访问socket.io客户端的js文件,但是我不能用phonegap来完成,因为html必须打包在手机上运行。 在做了一些研究后,似乎我需要远程访问socket.io客户端js,但是每次尝试都会导致错误。 这里是服务器代码(基于http://socket.io/get-started/chat/提供的示例代码) var app = require('express')(); var http = require('http').createServer(app); var io = require('socket.io')(http); app.get('/', function(req, res){ res.send('Loaded'); }); io.on('connection', function(socket){ console.log("A person connected!"); }) http.listen(8080, function(){ console.log("listening on port 8080…"); }); 这里是没有添加phonegap脚本和东西的客户端代码: <script type="text/javascript" src="socket-io/socket-io.js"></script> <script type="text/javascript"> var socket = io.connect(); </script>

如何连接到远程Node.js服务器?

我正在使用C9.io 这里我的服务器: var io = require('socket.io'); var socket = io.listen(8080, { /* options */ }); socket.set('log level', 1); socket.on('connection', function(socket) { console.log("connected"); socket.on('message1', function(data) { socket.emit("message1",JSON.stringify({type:'type1',message: 'messageContent'})); }); socket.on('disconnect', function() { console.log("diconnected"); }); }); 当我运行它产生这个url: https : //xxx-c9-smartytwiti.c9.io并告诉我,我的代码在这个URL中运行。 注意 :xxx是我的工作区 我在我的客户端做了什么:连接到“ https://xxx-c9-smartytwiti.c9.io:8080/ ”…. 然后,我在控制台(Firefox浏览器)得到这个错误: cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote […]