Tag: socket.io

不能从套接字连接之外定义的方法发出

我试图使用自定义对象的方法发送到套接字连接。 该对象在套接字连接之外定义,但是在其内部被实例化。 代码和错误如下。 app.js … io.sockets.on('connection', function (socket) { report = new Report(); socket.on('dataChange', function(newData) { report.update(newData); }); }); function Report () { this.update = function (data) { socket.emit('updateReport', { data: data }); } } 错误 节点给我以下错误。 socket.emit('updateReport',{data:data}); ^ ReferenceError:套接字未定义

在networking套接字上可以使用不同的语言吗?

我有这个问题,当我想在我的应用程序尝试networking套接字技术。 但我想问一下web socket的需求。 1)是posible我使用JavaScript语言的服务器是ex是socket.io var io = require('socket.io').listen(3001); io.sockets.on('connection', function (socket) { socket.emit('news', {hello: 'can you hear me'}); }); 和客户端使用Java语言的例子是socket.io.java我使用这种方法从服务器获取消息 public void onMessage(JSONObject json, IOAcknowledge ack) { Log.d("We received a message: " , json.toString()); } 与我的套接字服务器是 SocketIO socket = new SocketIO("http://127.0.0.1:3001/news"); 2)是否支持所有机器? 或浏览器?我是networking套接字编程新手,请帮助我 感谢您的回答…

实时应用程序 – 替代socket.io(node.js)

我使用node.js 我正在寻找一个替代socket.io。 我需要发送一个私人消息给用户。 什么是SOCKET.IO的替代scheme?

npm无法构buildsocket.io,错误“与您的节点版本/ npm:commander@0.5.0不兼容”

我从https://github.com/LearnBoost/socket.io.git位克隆了socket.io它失败,出现以下消息 npm http GET https://registry.npmjs.org/socket.io-client/0.9.2 npm http 304 https://registry.npmjs.org/socket.io-client/0.9.2 npm http GET https://registry.npmjs.org/uglify-js/1.2.5 npm http GET https://registry.npmjs.org/ws npm http GET https://registry.npmjs.org/xmlhttprequest/1.2.2 npm http GET https://registry.npmjs.org/active-x-obfuscator/0.0.1 npm http 304 https://registry.npmjs.org/uglify-js/1.2.5 npm http 304 https://registry.npmjs.org/xmlhttprequest/1.2.2 npm http 304 https://registry.npmjs.org/ws npm http 304 https://registry.npmjs.org/active-x-obfuscator/0.0.1 > ws@0.4.9 preinstall /usr/src/socket.io/node_modules/socket.io-client/node_modules/ws > make npm http GET https://registry.npmjs.org/zeparser/0.0.5 node-waf configure build Checking […]

SocketIO + MySQLauthentication

我试图通过socketIO在MySQL数据库上进行身份validation。 我build立了连接,可以查询结果没有问题,但由于某种原因,我不能通过是否用户被authentication到connection部分的socketio。 这个想法是我的应用程序有主机和观众。 如果连接到应用程序而不在QueryString发送密码,则该应用程序假定其为查看器并接受连接。 如果发送密码,则会对数据库进行检查并接受/拒绝连接。 我想要一个variables传入connection所以我可以在我的应用程序事件中使用它。 这是我迄今为止,但显然data.query['ishost']没有传入应用程序。 sio.configure(function() { sio.set('authorization', function (data, accept) { UserID = data.query['username']; try { UserID = UserID.toLowerCase(); } catch(err) { return accept("No WebBot Specified. ("+err+")", false); } // if not sending a password, skip authorization and connect as a viewer if (data.query['password'] === 'undefined') { return accept(null, true); } // […]

无法启动并运行socket.io

我在Windows上运行并使用WAMP作为本地主机服务器。 我已经search了很多教程,尝试了很多东西等,但仍然没有工作.. 当前设置 所以现在写在我的www /目录中,我创build了一个名为socketiodemo的文件夹。 其中,我做了npm install socket.io以及安装其他几个节点包: socket.io performance 笔尖 唱针 我安装了所有上面的包,即使我并不需要它们。 我只是安装了他们,因为很多教程需要他们,但我宁愿不使用它们,只是用javascript来纯粹的socket.io。 所以,下面是www下的我的目录的快照: app.js 的index.html node_modules socket.io performance 笔尖 唱针 我发现最精简的教程之一给了我这个app.js代码,这是服务器端: // Require HTTP module (to start server) and Socket.IO var http = require('http'), io = require('socket.io'); // Start the server at port 8080 var server = http.createServer(function(req, res){ // Send HTML headers […]

不能通过socket.io发出?

我最近更新了socket.io到0.9.8的最新版本 上次我使用这个应用程序的时候,我做了这样的事情: io.sockets.emit("logged",this); 它的工作。 现在我得到: TypeError: Cannot call method 'emit' of undefined at new Agent (/var/www/panel/models/agent.js:29:16) at module.exports (/var/www/panel/modules/app.js:35:47) at Query.Client.query (/var/www/panel/node_modules/mysql/lib/client.js:108:11) at Query.EventEmitter.emit (events.js:85:17) at Query._handlePacket (/var/www/panel/node_modules/mysql/lib/query.js:51:14) at Client._handlePacket (/var/www/panel/node_modules/mysql/lib/client.js:319:14) at Parser.EventEmitter.emit (events.js:88:17) at Parser.write.emitPacket (/var/www/panel/node_modules/mysql/lib/parser.js:71:14) at Parser.write (/var/www/panel/node_modules/mysql/lib/parser.js:576:7) at Socket.EventEmitter.emit (events.js:88:17) 我认为这是因为有关范围或任何东西,所以我只是这样做: // server.js var express = require('express'), server = express(), Routes = […]

存储由socket.io在MongoDB中创build的套接字

我试图创build一个基于Node.js的应用程序,使用Express,Socket.io和MongoDB(通过mongoose / mongo本地驱动程序)。 我的问题是,除了通过WebSocketsbuild立与客户端的连接外,我还获得了额外的信息,即存储和处理在数据库中是最好的。 然后随着事件的到来,我正在寻找客户端的基础上,额外的信息和套接字我发送通知给这些客户端。 我的问题 – 是否有可能将创build的套接字连接创build的对象存储到数据库? 如果没有,我的想法是将它们与一个附加variables一起存储在一个数组中,以便能够在数据库中查找find的项目以获取更多信息。 我对吗? 客户端 – >创build连接 – >发送数据 – >服务器 – >search数据库匹配的数据 – >匹配套接字创build的数据 – >通过创build套接字发送notifactions 诚挚

Socket.IO socket.id更改为相同的客户端,无需重新连接

我正在做一个应用程序,我需要将套接字映射到某个对象。 我以为我会安全使用Socket.IO提供的socket.idvariables。 不幸的是,在debugging的时候,我发现socket.id没有被客户端断开/重新连接等等。 这里有一小段代码来展示我想要做的事情: var io = require('socket.io').listen(8080), var myVariable = new Array(); // Main event loop io.sockets.on('connection', function (socket) { socket.on('myEvent', function(data) { myVariable[socket.id] = data; } // 'someOtherEvent' which uses the mapped data. socket.on('someOtherEvent', function(data) { // Doesn't always work because socket.id has changed and var is empty doSomethingWith(myVariable[socket.id]); } }); 我不确定,但我不认为这是预期的效果。 为什么会发生这种情况,我将如何解决这个问题?

服务器端连接到一个socket.io服务器

我有一个Java服务器,通过networking套接字连接到networking浏览器,特别是socket.io,特别是这个实现: https : //github.com/mrniko/netty-socketio 现在我想连接到相同的服务器,而不是从networking浏览器(通过Javascript),而是从Node.JS程序。 问题是,在我发现的所有示例中,Node.JS程序都是服务器,客户端始终是Web浏览器。 我尝试使用类似于node.js中的客户端连接代码的代码: var io = require('socket.io'); var socket = io.connect("http://localhost:9080"); 但得到这个错误: TypeError: Object #<Object> has no method 'connect'