Will DataSnap ser apropriado para até 8 não-comunicação intensiva jogo multiplayer bi-direcional?
-
11-09-2019 - |
Pergunta
Estou construindo uma pequena multipliplayer que terá o seguinte:
- deve ser escrito em Delphi
- deve suportar conexão com a Internet (não apenas LAN)
- trabalho sobre HTTP
- apoiar alguns criptografia dos pacotes (pode ser personalizado)
- será capaz de enviar comandos para o servidor
- será capaz de receber respostas do servidor
- ser capaz de conectar até 8 jogadores para um servidor
- ser capaz de passar objetos complexos (talvez JSON serializado) para os servidores
Você acha que o novo Delphi 2010 DataSnap pode ser utilizado com sucesso neste cenário ou devo ir com o TSocket velha lisa?
Solução
DataSnap pode fazer tudo o que você listados acima:
- DataSnap está escrito em Delphi.
- Ele pode se conectar via HTTP através de qualquer conexão, local, rede ou remoto.
- Ele vai trabalhar através de HTTP, incluindo suporte para tunelamento a conexão HTTP
- Você pode filtrar o fluxo de dados da maneira que quiser. O produto inclui um filtro de compressão. Daniele Teti tem escrito algumas muito agradáveis ??filtros de criptografia .
- Você pode enviar comandos para o servidor chamando métodos de servidor
- Você pode receber uma resposta do servidor através de chamadas de retorno do servidor
- Você pode facilmente conectar oito pessoas para um servidor
- Você pode passar objetos JSON. Esse é o tipo padrão enviado entre cliente e servidor.
Então, para responder sua pergunta, sim, eu acho que o novo Delphi 2010 DataSnap pode ser usado em seu cenário.
Outras dicas
Como Nick disse, a resposta é sim.
Bob Swart escreveu um papel branco e produziu alguns vídeos sobre o atualizados DataSnap em Delphi 2010 que podem ajudar você começar.
Se o seu jogo multiplayer não enviar muitos dados HTTP e DataSnap pode funcionar. Se você precisa de uma comunicação rápida, eu usaria UDP e protocolo binário personalizado. A menos que você tem que ignorar um firewall empresa que pára quase qualquer protocolo HTTP, mas - e as empresas geralmente não gostam de pessoas que jogam em suas horas de trabalho - uma conexão de entrada firewall bloqueia, não de saída. Apenas o servidor precisa de portas abertas para permitir que os clientes se conectem. E eu gostaria de evitar JSON, bem como - se você não precisa de interoperabilidade a serialização binária é muito mais rápido.