我正在开发Flex游戏。
这个游戏有AIR和Web版本。
AIR应用程序将使用端口上的UDP套接字连接到服务器。
Web版本的目的是允许用户在工作时或在某些阻止某些端口的防火墙/代理后面的计算机上播放。因此,Web将使用端口80上的http连接连接到服务器。
回答http连接的服务器代码将是使用BlazeDS的java servlet。 但是,如果你们中的任何人发现更容易解释C#服务器代码(webservices或其他),那就没问题了。 响应UDP请求的服务器代码将是一个监听套接字连接的简单类。
我的问题是我不知道如何将UDP和http代码放在一起。如果有5个AIR客户端和5个Web客户端,则它们都需要在服务器中遇到一些常见的集合变量,以便我可以使用最新信息更新所有客户端。 谁将实例化侦听套接字的类?什么时候?
总结一下:
1.我是否需要专用服务器来实现我想要的目标?
2.谁将实例化udp处理类以及什么时候?
3.甚至可以将udp处理类和用于http连接的servlet保持在一起吗?如果没有http,我甚至不需要tomcat。但http和udp代码需要保持在一起,以便我可以更新播放器集合。是否可以实例化UDP处理类并告诉它在servlet部署在服务器上时监听套接字......或类似的东西?
欢迎任何建议
提前谢谢,
米哈
答案 0 :(得分:1)
http和udp代码需要保持在一起
不,他们没有。它们是游戏数据的传输机制,因此它们应该是透明的。您的UDP和HTTP服务器应该连接到您的游戏后端,以何种方式由您决定。它可以在内存中,直接从后端代码使用HTTP和UDP(套接字)模块,也可以使用某种服务(这样你就可以让其他通道与同一个后端通信)。
此游戏后端不直接连接到用户,而只与UDP和HTTP模块通信。
然后从此后端处理您从HTTP和UDP接收的消息,并通过同一频道发送响应。
示例:
示例2: