Tag: websocket

WebRTC是正确的吗? (实时多人游戏)

想象一下,我想用HTML5(客户端)和node.js(服务器)创build一个实时多人游戏。 我需要将数据从服务器传输到客户端,反之亦然。 在本地应用程序中,我会使用UDP来获取大多数数据(玩家位置,…),因为它比TCP更快,而且在丢失的时候没有任何危险。 在HTML5我可以(仅)使用WebSockets 。 WebSocket在TCP之上,因此速度不够好,性能不错。 我听说过WebRTC ,但我不知道这是否可以解决这个问题。 有人有经验吗? (我知道,WebRTC仍然不支持大多数浏览器,但这对我来说并不重要。)

有什么更好的:WebSocket节点或WS? 有没有标准的nodejs websockets接口?

我想从socket.io转移到常规的websockets,以利用二进制数据传输,并摆脱base64编码。 好像有两个主要的nodejs websocket库,都在github上: Worlize / WebSocket的节点 einaros / WS 两者都似乎得到定期更新,都声称是支持RFC-6455标准。 有没有人有经验与谁可以分享经验和/或提出build议这两个或两个? 还是有人知道我在哪里可以find他们最近的比较? 另外有没有任何一个官方的服务器端Websocket接口标准的计划? 这两个库似乎有不同的API。 我确实发现了这一点 ,但是对于客户端来说显然是明显的,并且比RFC标准的date还要新。 我一直在浏览Googlesearch的各种变化,我可以想到的,以及许多相关的StackOverflow问题,但似乎没有人回答我的问题,甚至谷歌关于这个主题的最好结果都是过时了几年。 一些相关但不足的StackOverflow线程包括: 其中-网页套接字库使用的与-节点-JS 是-的WebSockets,真的-意味着,待处理按networking服务器 networkingsockets的服务器端的实现换的NodeJS

从Meteor.js打开一个Websocket连接

我们怎样才能从Meteor打开一个Websockets连接? 我们可以做些什么: ws = new WebSocket('ws://localhost/path'); ws.on('open', function() { ws.send('something'); }); ws.on('message', function(message) { console.log('received: %s', message); }); 错误: ReferenceError: WebSocket is not defined 使用socket.io npm包 var io = Meteor.require('socket.io') var socket = io.connect('http://localhost'); 错误: TypeError: Object #<Object> has no method 'connect' 使用ws npm包 var WebSocket = Meteor.require('ws'); var ws = new WebSocket('ws://localhost'); 错误: Error: […]

如何在Socket.io/express-sessions中的授权事件上访问/保存会话数据?

我使用Socket.io设置websocket,并在node.js服务器上表示4个框架。 我正在尝试使用我的websocket时为我的用户执行授权步骤。 当用户连接时,令牌作为查询值传递给服务器。 在服务器级别,我查询数据库以查找与传递的令牌相匹配的会话。 如果find一个会话,我会做其他一些检查来确保令牌不被劫持。 问题 会话数据似乎在每个页面重新加载清除。 或者服务器无法将sessionId链接到创build它的用户,所以每次都会生成一个新的会话。 我很困惑如何访问会话variables“如果他们被设置”。 我的代码的问题 当用户重新加载他/她的页面/客户端时,会话数据将在新请求中变得不确定。 会话是好的,直到页面刷新这是我的问题。 即使在用户刷新页面之后,我也需要保持活动状态。 问题 如何确保会话数据不会在每个页面上被清除刷新? 这是我的授权码 io.set('authorization', function (handshakeData, accept) { var session = handshakeData.session || {}; //This is always undefined! console.log('Session Data:' + session.icwsSessionId); //var cookies = handshakeData.headers.cookie; var token = handshakeData._query.tokenId || ''; //console.log('Token: ' + token); if(!token){ console.log('Log: token was not found'); […]

将getUserMediastream式传输到服务器

我是二进制数据和getUserMedia的新手,如何将getUserMedia(video/audio)stream式传输到服务器,然后为其他连接准备stream(video/audio)? 我最初的想法是通过websockets发送数据,然后将数据写入文件(mp4),如下所示: getUserMedia –>(websockets)–> server –>(file.mp4)–> video.src 。 我一直在看MediaStreamRecorder ,我可以像这样发送一个缓冲区: multiStreamRecorder.ondataavailable = function (blobs) { socket.emit('blobs', blobs) }; 在我得到的服务器上 { audio: <Buffer 52 49 46 46 2c 10 04 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 01 00 44 ac 00 00 10 b1 02 00 02 […]

通过nodejs服务器+ socket.io从mp3文件同步stream式传输音乐

所以我有我的服务器上的MP3文件。 而且我希望所有访问该url的客户都能同步收听该音乐。 那是。 让我们说文件播放6分钟。 我在上午10点开始这首歌 上午10:03发出的请求应该从歌曲的第3分钟开始收听。 我所有的客户都应该同步听歌。 我怎样才能实现这与nodejs和socket.io

基于Cookie的WebSockets的负载平衡?

我的情况是,我们目前正在编写一个在线应用程序,它使用WebSocket侦听器在服务器端使用Node.js。 我们有两个不同的部分:一个服务页面,使用node.js和express + ejs,另一个是完全不同的应用程序,其中只包括用于websocket的socket.io库。 所以在这里我们来看看这个websockets部分的可伸缩性问题。 我们发现的一个解决scheme是使用redis和服务器之间共享套接字信息,但是由于架构,它将需要共享其他信息的负载,这将在服务器上造成巨大的开销。 在介绍之后,我的问题是 – 是否可以使用基于cookie的websocket负载平衡? 因此,可以说每个从用户与cookie服务器= server1连接将始终转发到server1和每个连接与cookie服务器= server2将fw到server2和连接没有这样的cookie将fw到最不繁忙的服务器。 更新:正如一个“答案”所说 – 是的,我知道这存在。 只是不记得那个名字是粘滞的会议。 但问题是 – 这是否适用于websockets? 有没有可能的并发症?

node.js和socket.io。 websocket的传输typesconfiguration?

这个问题涉及socket.io版本<0.9.x. 较新的版本具有不同的传输和设置传输的方法。 我在两周内testing节点js和socket.io。 当我开始我从客户端的socket.send(message)函数得到的问题。 我无法发送任何消息到服务器。 但是我仍然可以从服务器接收消息。 当我发现服务器端的configuration传输时,我解决了这个问题: socket.set('transports',[ 'xhr-polling' , 'jsonp-polling' ]); 一切安好。 现在我可以发送消息到服务器了。 但我仍然有一个问题,为什么我必须configuration运输。 默认的socket.io使用websocket传输设置如下: socket.set('transports', [ 'websocket' , 'flashsocket' , 'htmlfile' , 'xhr-polling' , 'jsonp-polling' ]); 所以它首先使用websocket,而不是xhr-polling。 但是,当使用socket.send(msg)甚至socket.emit(…)时,服务器不能接收到来自客户端的任何消息。 所以问题是:什么不支持websocket在这里? 浏览器或node.js …我很抱歉,但我从谷歌search这么多网页,我还没有find答案。 我使用node.js版本0.8.16,socket.io版本0.9.13和最新的浏览器:chrome,firefox,opera 我想用websocket而不是xhr-polling。

瓶颈与套接字的方法?

考虑创build一个用户可以进行协作的实时应用程序。 发现node.js + socket.io是这类问题的解决scheme之一。 我听到其他开发人员说,就我的服务器给用户的套接字数量而言,会有一个瓶颈。 因此,如果我有数百个用户在同一时间进行协作,则打开的套接字数量将会耗尽,用户将无法连接。 这是一个有效的关注吗? 更新:有关的相关说明我正在寻找使用SockJS而不是Socket.io。 有一个线索可以解释这些库的优缺点 。 这也是一个很好的阅读 。

安装了node.js websocket模块,但不能在脚本中使用

我刚刚安装了node.js + microsoft visual可以安装websocket,安装的很好: C:\Users\Administrator>npm install websocket npm http GET https://registry.npmjs.org/websocket npm http 304 https://registry.npmjs.org/websocket > websocket@1.0.8 install C:\Users\Administrator\node_modules\websocket > node install.js [websocket v1.0.8] Attempting to compile native extensions. [websocket v1.0.8] Native extension compilation successful! websocket@1.0.8 node_modules\websocket C:\Users\Administrator> 现在我试图运行一个脚本: var WebSocketServer = require('websocket').Server; 而我得到这个: C:\Users\Administrator>node C:\server\src\main.js module.js:340 throw err; ^ Error: Cannot find module 'websocket' […]