Tag: websocket

战略游戏服务器概念

我打算创build一个基于WebGL的实时策略游戏,玩家可以一起玩。 我将使用Node.js来创build游戏服务器,以及用于实时连接的websocket。 我打破了什么是同步客户最好的概念。 一种可能性是仅将用户(移动单元,build筑物等)的订单发送到服务器,服务器将其发送到所有其他客户端。 但是在这里,我有延迟的问题。 我认为游戏会以这种方式获得asynchronous。 另一种可能性是在服务器上计算游戏。 客户端仍然向服务器发送指令,但是服务器现在将所有单元和build筑物的所有改变的状态以高的间隔发送给客户端。 问题是这里的数据量很大,速度有多快。 你有其他的想法或改进scheme吗? 谢谢!

ExpressJS&Websocket&会话共享

我试图做一个基于Node.js的聊天应用程序。 我想强制websocket服务器(ws库)使用ExpressJS会话系统。 不幸的是,我卡住了。 用于获取会话数据的MemoryStore散列与Cookie中的会话ID不同。 有人能解释我做错了什么吗? Websocket服务器代码部分: module.exports = function(server, clients, express, store) { server.on('connection', function(websocket) { var username; function broadcast(msg, from) {…} function handleMessage(msg) {…} express.cookieParser()(websocket.upgradeReq, null, function(err) { var sessionID = websocket.upgradeReq.cookies['sid']; //I see same value in Firebug console.log(sessionID); //Shows all hashes in store //They're shorter than sessionID! Why? for(var i in store.sessions) console.log(i); […]

Socket.io – 客户端断开后手动重新连接

我使用node.js和socket.io创build实时Web应用程序。 我将给用户完全控制套接字连接,如手动断开和(重新)连接。 function socket_connect() { console.log('func socket_connect'); socket = io.connect('http://url/to/the/app'); } function socket_reconnect() { console.log('func socket_reconnect'); socket_connect(); } function socket_disconnect () { console.log('func socket_disconnect'); if (socket) socket.disconnect(); } 在客户端启动socket_connect()函数工作正常,但使用socket.disconnect() ,没有新的连接启动。

将video从HTML5stream式传输到node.js

我有一个使用“ws”npm包的node.js服务器。 从HTML5我可以得到用户的networking摄像头stream,但我怎么把networking摄像头stream通过HTML5 websocket发送到我的node.js服务器? 目前我在服务器上有这样的代码: wss.on('connection', function(ws) { ws.on('message', function(data, flags) { console.log("Message received"); }); }); 而在客户端上这个代码: var ws = new WebSocket('ws://localhost:8080'); ws.onopen = function() { ws.send(stream); } 其中stream是从navigator.getUserMedia与video: true 。 提前致谢!

如何通过带有node.js和socket.io的WebSocketsstream式传输MP3数据?

我有问题通过WebSocket与node.js和socket.iostreamMP3数据。 一切似乎工作,但decodeAudioData不公平对我来说。 这是我的玩具服务器: var app = require('http').createServer(handler) , io = require('socket.io').listen(app) , fs = require('fs') app.listen(8081); function handler (req, res) { res.writeHead(200, { 'Content-Type': 'text/html', }); res.end('Hello, world!'); } io.configure('development', function() { io.set('log level', 1); io.set('transports', [ 'websocket' ]); }); io.sockets.on('connection', function (socket) { console.log('connection established'); var readStream = fs.createReadStream("test.mp3", {'flags': 'r', 'encoding': 'binary', 'mode': […]

如何通过WebSockets连接到socket.io时发送cookie?

有一种方法可以轻松地通过一个身份validationCookie cookie握手一个WebSocket连接到socket.io? 我现在必须单独做,如下所示: socket = new io.Socket(document.location.hostname); socket.addEvent("connect", function() { // Send PHP session ID, which will be used to authenticate var sessid = readCookie("PHPSESSID"); this.send("{'action':'authenticate','sessionid':'"+sessid+"'}"); });

如何限制客户端通过websocket发送的数据量?

我正在使用ws模块,我想通过websocket将客户端发送的数据量限制为1Mb。 这将防止恶意用户发送大量数据(以GB为单位),导致服务器内存不足,这将导致每个普通用户的拒绝服务错误。 例如,Express示例允许指定发布请求主体的最大大小,如下所示: bodyParser.json({limit:'1Mb'}) 我如何做与ws模块类似的东西? 我试过了 var ws = require('ws').Server var wsserver = new ws({port:8080, limit:'1Mb'}) 但是这当然不起作用。 我想传输的数据被中断(超过1Mb后)和websocket连接被closures。 我怎样才能做到这一点? 必须有一种方法来限制来自客户端的dataframe…

如何在带有套接字(socket.io)的NodeJS中查找客户端的响应时间(延迟)?

我试图用NodeJS创build一个多人游戏,我想同步客户端之间的动作。 在客户端和服务器之间find延迟(请求返回到客户端的时间)的最佳方法是什么? 我的第一个想法是客户端#1可以发送一个时间戳与请求,所以当客户端#2将收到客户端#1的行动,他将调整是行动的速度,以消除请求的延迟。 但是问题是两个客户端的系统date时间可能不相同,所以根据客户端#1的请求不可能知道卷轴延迟。 另一种解决scheme是使用服务器的时间戳,但现在我怎么知道客户端的延迟?

WebSocket地址可以携带参数吗?

是ws://myserver.com/path?param=1一个有效的WebSocket地址? 地址http://myserver.com/path?param=1 (注意它现在是http而不是ws )可以正常使用wscat ,但是我无法在浏览器上使用它。

格式化消息从python客户端发送到socket.io node.js服务器

我试图通过发送一个自定义的事件到服务器,使用Socket.io 0.7来获取Python客户端与Node.js服务器交谈。 基于我在GitHub上find的Socket.io引用,以及下面的WebSocket Python库 。 这是我的代码到目前为止: 节点服务器 io.sockets.on('connection', function (socket) { socket.on('newimg', function(data) { console.log(data); }); }); Python客户端 def handshake(host, port): u = urlopen("http://%s:%d/socket.io/1/" % (host, port)) if u.getcode() == 200: response = u.readline() (sid, hbtimeout, ctimeout, supported) = response.split(":") supportedlist = supported.split(",") if "websocket" in supportedlist: return (sid, hbtimeout, ctimeout) else: raise TransportException() else: […]