推杆/ PubNub替代使用Heroku上的node.js
我想用node.js构build我自己的多人游戏服务器,并在Heroku上部署代码。 我的问题是,如果我所描述的是可能的那样:)
我希望Android游戏的玩家能够连接到一个非常快速的(不一定是实时的)游戏服务器。 游戏服务器应该能够将它们分组到房间(频道)中,并且当它们在房间中时,它们应该能够发布和订阅 。 这意味着,我希望玩家通过node.js服务器交换游戏信息。
在服务器上,带ws的 node.js应该被用来让WebSocket服务器侦听这样的客户端事件:
var WebSocketServer = require('ws').Server; var wss = new WebSocketServer({ port: 8080 }); var clientList = {}; wss.on('connection', function(ws) { ws['AUTH'] = getGUID(); clientList[ws['AUTH']] = ws; // ws['AUTH'] has joined the server ws.on('message', function(message) { for (var clientID in clientList) { clientList[clientID].send(message); } }); ws.on('close', function() { delete clientList[ws['AUTH']]; // ws['AUTH'] has left the server } ws.send('something'); }); function getGUID() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); return v.toString(16); }); }
在客户端,我想使用autobahn.ws (这部分?WAMP?PubSub或RPC?)与这个游戏服务器进行通信。
如果这样做,这是几行有一个非常基本的版本像Pusher和PubNub提供的服务,对不对? 人们必须添加渠道,authentication等
如果这可能在上面的代码中,它也可以在Heroku上工作吗?
- 怎么样有多个dynos ? 他们共享公共内存(
clientList
)还是必须在它们之间进行同步? 怎么样? 使用群集API ? - 您大概期望在单个测功机上工作多less个客户端? 每个Dyno 100个并发用户期望太多?
如果你想使用WAMP (通过一个高速公路库或其他 ),那么你可以看看wamp.io – 一个nodejs WAMP实现。
- 如何在node.js中使用express来实现android应用程序中的服务器端会话?
- 在没有NPM的情况下使用Firebase应用程序服务器(Node.js)
- Android连接Node.js REST未经审核的stream结束
- 如何解决这个封装器错误的反应原生的Android
- Android或ios平台上的Node-WebKit应用程序
- 如何将移动启动的video通话与基于networking的video通话相集成?
- build立离子应用程序时找不到模块'shelljs'
- react-native android genymotion错误java.util.concurrent.ExecutionException:
- Android本机应用程序与跨平台应用程序