LINUX.ORG.RU

На чем сделать свой чат-сервер?


0

0

Дано: веб-игра, 1500 юзеров, 1500 открытых сокетов, каждый из них как минимум раз в 10 секунд шлет запрос (перемещение персонажа в игре) и ожидает получить ответ (перемещение соседних персонажей).

Идея реализовать это в виде чата с сообщениями, вроде:

user1237|updatelocation|2342434|4567234|98273648|weapon7used

И пачка похожих сообщений в ответ. Протокол текстовый или бинарный.

Вопрос: в чем сейчас модно слушать порты, порождать/не порождать кучу дочерних процессов, разруливать синхронизацию между ними. netcat+bash не предлагать.

anonymous

Re: На чем сделать свой чат-сервер?

IRC ? )

Sylvia ★★★★★ ()

Re: На чем сделать свой чат-сервер?

определенно IRC

ptah_alexs ★★★★★ ()

Re: На чем сделать свой чат-сервер?

Jabber?

Lucky1 ★★★ ()

Re: На чем сделать свой чат-сервер?

XML RPC наше все ^_^

phasma ★☆ ()

Re: На чем сделать свой чат-сервер?

Мне кажется, человек не про IM спрашивал :D

Deleted ()

Re: На чем сделать свой чат-сервер?

jabber или ручками на twisted

barbuza ()

Re: На чем сделать свой чат-сервер?

XMPP?

v12aml ★★ ()
Ответ на: Re: На чем сделать свой чат-сервер? от v12aml

Re: На чем сделать свой чат-сервер?

напомню:

>в чем сейчас модно слушать порты, порождать/не порождать кучу дочерних процессов, разруливать синхронизацию между ними

топикстартеру остается остальную функциональность прилипить в качестве, например, сервиса

а так же обрадовать юзверей "теперь вы можете общаться с людми из игры даже когда вы вне игры, использую QIP"

v12aml ★★ ()
Ответ на: Re: На чем сделать свой чат-сервер? от Valeriy_Onuchin

Re: На чем сделать свой чат-сервер?

> multicast udp

The architecture is quite simple:


- The server controls most of the game state information like objects position, score, even some basic physics. Changes in the internal state
of the game are computed at the server (a player moving to some
location, or a shot being fired, etc ... ) and is informed to the
clients mostly using asynchronous network messages (UDP packets).
LAN games uses multicast messages to save network traffic.
The server does not need to have a GUI.


- The clients need to connect (using TCP) and "register" at the
servers to receive updated game state data. The client does not use
local logic to update objects position or velocity. All the client do
is get updated game state from the server and render it. Also, every
user action (like the pressing of a move key) is not applied to local
object. This action is informed to the server using another
asynchronous network message.


Of course, implementations of this architecture uses a lot of tricky
optimizations methods, but this is the general idea.

Valeriy_Onuchin ★★ ()
Ответ на: Re: На чем сделать свой чат-сервер? от Deleted

Re: На чем сделать свой чат-сервер?

>Только в интернете и "не своих" локалках с шибко умными роутерами мультикаст работать не будет...

а кому сейчас легко? :) 
Возможно, придется общаться через промежуточный сервер 
(который за рутером) по ssh tunnelю, типа (reverse proxy)
http://zarb.org/~gc/html/udp-in-ssh-tunneling.html

ssh == openSSL

Valeriy_Onuchin ★★ ()
Ответ на: Re: На чем сделать свой чат-сервер? от Valeriy_Onuchin

Re: На чем сделать свой чат-сервер?

ну и зачем делать все через одно место когда топикстартеру хватило бы IRC или ему подобного варианта

Sylvia ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.