Я хотел бы создать свой собственный многопользовательский игровой сервер с использованием node.js и развернуть код на heroku . Мой вопрос: если то, что я описываю, возможно, так < /p>
Я хочу, чтобы игроки из игры Android < /strong> имели возможность подключаться к очень быстрому (не обязательно в режиме реального времени) игрового сервера. Игровой сервер должен быть в состоянии группировать их в комнаты (каналы), и когда они находятся в комнатах, они должны быть в состоянии и подписаться . That means, I want the players to exchange game information via the node.js server.
On the server, node.js with ws shall be used to have a WebSocket server listen for client events like this:
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);
});
}
< /code>
На стороне клиента я хотел бы использовать autobahn.ws < /strong> (какая часть? Wamp? Pubsub или RPC?) Для общения с этим игровым сервером. < /p>
Если это работает, это несколько строк, которые имеют очень базовые < /> версии, такие как Service, такие как Servic, такие как Server, и Publer Proper, как и Spoper, и в том, что есть, как Sporter, так и в том, что есть, как Sporter, так и Publer, как и Spus, как и POB Proper, и в этом плане, как и в Service Proper? Нужно добавить каналы, аутентификацию и т. Д. Они разделяют общую память (clientList
) или я должен синхронизировать между ними? Как? Использование кластера API? 100 одновременных пользователей на динамо ожидают слишком многого?
Я хотел бы создать свой собственный [b] многопользовательский игровой сервер [/b] с использованием [b] node.js [/b] и развернуть код на [b] heroku [/b]. Мой вопрос: если то, что я описываю, возможно, так :) < /p>
Я хочу, чтобы игроки из игры [b] Android < /strong> имели возможность подключаться к очень быстрому (не обязательно в режиме реального времени) игрового сервера. Игровой сервер должен быть в состоянии группировать их в комнаты (каналы), и когда они находятся в комнатах, они должны быть в состоянии и подписаться [/b]. That means, I want the players to exchange game information via the node.js server.
On the server, [b]node.js[/b] with [b]ws[/b] shall be used to have a [b]WebSocket[/b] server listen for client events like this:
[code]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); }); } < /code>
На стороне клиента я хотел бы использовать autobahn.ws < /strong> (какая часть? Wamp? Pubsub или RPC?) Для общения с этим игровым сервером. < /p>
Если это работает, это несколько строк, которые имеют очень базовые < /> версии, такие как Service, такие как Servic, такие как Server, и Publer Proper, как и Spoper, и в том, что есть, как Sporter, так и в том, что есть, как Sporter, так и Publer, как и Spus, как и POB Proper, и в этом плане, как и в Service Proper? Нужно добавить каналы, аутентификацию и т. Д. Они разделяют общую память (clientList[/code]) или я должен синхронизировать между ними? Как? Использование кластера API? 100 одновременных пользователей на динамо ожидают слишком многого?