我正在flex开发游戏。
该游戏的空气和网络版本既有空气又有版本。Air App将使用端口上的UDP插座连接到服务器。Web版本的目的是允许用户在工作时或在某些防火墙/代理后面的计算机上播放,以阻止某些端口。因此,Web将使用端口80上的HTTP连接连接到服务器。
回答HTTP连接的服务器代码将是使用燃烧的Java Servlet。但是,如果您发现C#服务器代码(WebServices或其他任何内容)更容易解释,那就可以了。回答UDP请求的服务器代码将是一个简单的类侦听套接字连接。
我的问题是我不知道如何将UDP和HTTP代码放在一起。如果有5个Air客户端和5个Web客户端,则他们都需要在某些常见的集合变量中在服务器中遇到,以便我可以使用最新信息更新所有客户端。谁将实例化倾听插座的课程?什么时候?
因此总结:
1.我需要专用的服务器来实现我想要的东西吗?
2.谁将实例化UDP处理课程以及何时?
3.是否可以将UDP处理类和HTTP连接的servlet保持在一起?如果没有http,我什至不需要tomcat。但是HTTP和UDP代码需要保持在一起,以便我可以更新播放器集合。是否可以实例化UDP处理类,并告诉它在服务器上部署servlet或类似的东西时侦听插座?
任何建议都受到欢迎。
预先感谢
miha
HTTP和UDP代码需要保持在一起
不,他们没有。它们是用于您的游戏数据的运输机制,因此应该是透明的。您的UDP和HTTP服务器应以何种方式取决于您的后端。它可以通过直接从后端代码中使用HTTP和UDP(套接字)模块进行内存,也可以使用某种服务(因此,您可以让其他频道与同一后端交谈)。
>此游戏后端不会直接连接到用户,而仅与UDP和HTTP模块进行对话。
然后,从此后端您处理您从HTTP和UDP接收的消息,并通过同一频道发送响应。
示例:
- 空气客户1向UDP服务器发送有效的登录消息。
- UDP服务器将登录消息转发到游戏后端。
- 游戏后端返回成功的结果消息到UDP服务器
- UDP服务器将结果消息转发到空气客户1。
示例2:
- 现在,恰好已登录的http-client 1,请求当前登录的所有用户。
- HTTP服务器将此请求转发到游戏后端。
- 游戏后端将信息返回到http服务器
- HTTP服务器返回对客户端的响应。