首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netty游戏服务器

Netty游戏服务器
EN

Stack Overflow用户
提问于 2012-05-31 19:04:33
回答 1查看 5.3K关注 0票数 1

我正在尝试为连接的客户端构建一个通用服务器。

该体系结构由4个主要组件组成。

  • 有状态应用程序服务器
  • 无状态网关服务器
  • 客户排队
  • 系统和经纪人

流程

  1. 客户端连接到网关
  2. 网关接受将会话id发送回客户端。
  3. 客户端向网关发送消息
  4. 网关将请求写入消息/任务队列
  5. 守护进程读取队列上的消息并将它们转发到App的侦听套接字
  6. 应用服务器通过其业务逻辑运行消息
  7. 然后,App将相关消息发送到网关队列中。
  8. 网关上的线程读取入站队列中的消息,然后将消息发送回消息中标识的客户端。
  9. 网关维护客户端会话Id到客户端套接字对象的映射,以将传入的消息转发给客户机套接字。

我正在使用Java作为网关。App服务器也使用Java。

我很想说这个设计类似于Mongrel2,但我并不完全确定。我想说的是,这更多的是关于城市飞艇(http://urbanairship.com/blog/2010/08/24/c500k-in-action-at-urban-airship/)的氦边服务器设计的。

我的问题是:-使用线程从入站队列读取消息,然后将它们转发给客户是个好主意吗?有更好的方法来处理这件事吗?如何确保消息在不使用其他线程的情况下转到相应的客户端套接字?

EN

回答 1

Stack Overflow用户

发布于 2012-06-04 17:56:18

您可以使用-vm消息传递。这里是一个netty游戏服务器 (警告!我写的!)其中已经使用了这种演员模型。它使用JetLang进行事件分派,会话用于--记住每个到客户端的连接--。虽然您的用例可能无法直接满足,但是如果您查看jetserver的源代码并派生出您自己的逻辑,您肯定会得到一些想法。

如果您注意到,即使是无状态UDP也与会话相关联。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10839696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档