Tag: websocket

WebSocket服务器的最佳实践是什么?

比方说,你有一个网站,用户可以打开聊天室。 一旦房间被打开,用户可以邀请他人聊天。 让我们也假装你想使用WebSockets进行与客户端的通信。 在大多数服务器端的WebSocket实现中,有一个简单的函数,比如connection.broadcast(message) ,它向所有连接的主机发送消息,而不是发起广播的消息。 这是一个很棒的function,因为您不需要为自己保留所有客户的列表,以保持更新。 聊天室的例子的问题是,在这种情况下,您不希望将每条消息广播给每个人,而只是向处于同一个房间的其他客户端广播。 这让我有两个select: 滚动我自己的broadcastToRoom(room_id)function,这反过来意味着跟踪所有客户和房间。 每当创build一个新房间时,产生一个服务器的新实例(在一个新的端口上)。 你会怎么做?

套接字IO V0.7:如何发送消息到一个特定的客户端

在0.6版本中,我使用这种方法将消息发送到特定的客户端组。 它将排除具有“excludedClients”数组中的会话ID的客户端,并发送给所有未被排除的客户端。 var excludedClients = [sessionID1, sessionID2, sessionID3]; io.broadcast(msg, excludedClients); 这个方法是否适用于V0.7? 这是做这个最好的方法吗? 希望有人能给我一个这样的手,似乎没有任何地方的任何可靠的文档的Socket IO,只是在github页面上简单地解释了一些例子。

node.js socket.io客户端和服务器

我想从http://socket.io运行socket.io最简单的演示 服务器(app.js)似乎工作正常。 但是我对客户有麻烦: <script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect('http://localhost'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script> 我应该在哪里指出第一个脚本src? 当然,我没有path /socket.io/socket.io.js 在我的networking服务器的公共文件夹 我的安装如下: 安装节点: wget http://nodejs.org/dist/node-v0.4.12.tar.gz -P /tmp mkdir ~/opt cd ~/opt tar zxvf /tmp/node-v0.4.12.tar.gz cd node-v0.4.12 PREFIX=~/opt ./configure make make install echo 'export PATH=~/opt/bin:${PATH}' >> ~/.profile source ~/.profile […]

哪个是node.js中使用的websocket版本?

我正在尝试使用unitt ios客户端连接到node.js websocket。 但是这个失败可能是因为我正在使用不同的客户端。 哪个是node.js中使用的websocket版本?

在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套接字编程新手,请帮助我 感谢您的回答…

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); } // […]

Weinre在heroku上

我正在尝试在Heroku上设置Weinre ,但是我遇到了一些问题。 我设法构build应用程序,只需使用一个package.json与weinre npm依赖和一个Procfile,看起来像下面 web: node_modules/weinre/weinre –httpPort $PORT 起初一切似乎工作,客户端显示的用户界面,JS文件加载正常,但debugging不起作用,并没有客户端在服务器端出现。 在查看日志的同时,我意识到每次包含/ ws / target / *或/ ws / client / *的请求都会收到404错误 2012-05-31T22:37:53+00:00 heroku[router]: GET xxxx.herokuapp.com/target/target-script.js dyno=web.1 queue=0 wait=0ms service=10ms status=200 bytes=190900 2012-05-31T22:37:36+00:00 heroku[router]: GET xxxx.herokuapp.com/ws/target/t-3 dyno=web.1 queue=0 wait=0ms service=3ms status=404 bytes=9 2012-05-31T22:36:39+00:00 heroku[router]: POST xxxx.herokuapp.com/ws/client/c-1 dyno=web.1 queue=0 wait=0ms service=40ms status=404 bytes=9 这个设置工作本地没有问题。 我也尝试了与–boundHost 0.0.0.0并得到了同样的错误。 当我使用我的heroku应用程序域/子域作为主机我得到weinre: error […]

无法启动并运行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在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]); } }); 我不确定,但我不认为这是预期的效果。 为什么会发生这种情况,我将如何解决这个问题?