Я хочу, чтобы игроки из игры Android имели возможность подключаться к очень быстрому (не обязательно в режиме реального времени) игрового сервера. Игровой сервер должен быть в состоянии группировать их в комнаты (каналы), и когда они находятся в комнатах, они должны быть в состоянии и подписаться . Это означает, что я хочу, чтобы игроки обменивались информацией об игре через сервер node.js.
на сервере, node.js с ws должен использоваться для того, чтобы 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);
});
}
Если это работает, это несколько строк, чтобы иметь очень простую версию, такие как Pusher и Pubnub, верно? Нужно добавить каналы, аутентификацию и т. Д. Они разделяют общую память (
Код: Выделить всё
clientListПодробнее здесь: https://stackoverflow.com/questions/182 ... -on-heroku
Мобильная версия