当前位置: 首页 > 知识库问答 >
问题:

Netty游戏服务器

阳念
2023-03-14

我试图建立一个通用服务器总是在连接的客户端。

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

  • 有状态应用服务器
  • 无状态html" target="_blank">网关服务器
  • 客户排队
  • 系统和经纪人

工艺流程

  1. 客户端连接到网关

我正在使用JavaNetty作为网关。appserver也是用Java编写的。

我很想说这个设计像Mongrel2,但我不能完全确定。我想说,这更符合城市飞艇氦边缘服务器的设计(http://urbanairship.com/blog/2010/08/24/c500k-in-action-at-urban-airship/)

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

共有1个答案

支智志
2023-03-14

您可以在vm消息传递中使用。这是一个netty游戏服务器(小心!我写的!),它已经使用了这种演员模型。它使用时差进行事件调度,并使用会话记住与客户端的每个连接。虽然您的用例可能无法直接得到满足,但如果您深入研究jetserver的源代码并衍生出自己的逻辑,您肯定会有一些想法。

如果您注意到,即使是无状态UDP也与会话绑定。

 类似资料:
  • JAGS 游戏服务器是一个开源的 Java / AS 3.0 的游戏服务器,支持多玩家、碰撞检测以及键盘事件等等。

  • 二本鼠鼠学Java没出路。。 技术面 - 50min - 9.26 自我介绍 介绍一下你的项目经历 MySQL索引底层结构 Redis有哪些数据结构 Redis的持久化机制 学过其他语言吗(c++和go),说一下c++、go、Java的区别 LRU怎么实现 最短路径算法实现 JVM垃圾回收算法 手撕在一排数据中算出不重复数据的子集 TCP三次握手 你知道什么是SYN攻击吗 TCP四次挥手为什么是四

  • 过年回上海裸辞出去玩了一个月,5月回来找的工作,正好现在有时间了,抽空写一下社招面经,有些已经忘记了。裸辞还是太冲动了,菜鸡不配gap,两年工作经验不应该随便裸辞,还是太年轻、太狂妄了。当年校招腾讯、祖龙、小米等等offer随便拿,以为社招还跟校招一样简简单单,结果现在只能去个小公司养老了。 巨人网络(球球大作战) golang游戏后端,线下1、2、3面一起的 一面 项目架构图 pb的底层实现结构

  • 我正在尝试构建一个使用套接字和udp协议的python在线游戏。我创建了一个多处理和多线程服务器:https://pastebin.com/zucxwpc9。 我会解释里面的代码是做什么的。所以首先,它等待两个请求,并将它们放入lobby列表中。如果发出了两个请求,服务器将向客户端发送一个新端口,并创建一个具有两个线程的新进程。两个线程都在使用新端口,一个接收数据,另一个发送数据。我正在使用队列,

  • 全程35分钟! 1.自我介绍 2.选你最熟悉的项目深挖 3.tcp粘包,如何解决? 4.怎么自己设计数据库 5.自己设计过那些小工具?日志系统,简易shell 6.STL是线程安全的吗? 7.哈希冲突,红黑树 8.说一下线程安全 9.负载均衡的算法了解哪些? 10.游戏寻路算法了解吗?答了回溯 11.数学三维和二维两点之间的距离 12.实习经历,写过哪些算法? 13.为什么游戏服务器不用数据库?

  • 时间线5.4日一面,全程30mins 1.自我介绍 2.C++多态 2.vector以及STL各种容器的迭代器失效问题 3.场景题,两个容器中如果存放了相同指针,如果其中一个释放了一个在用怎么解决? 4.gdb调试器怎么调试多线程,怎么查看堆栈 5.你曾用过哪些使用多线程的方式? 6.C++11了解哪些,具体一点 7.项目深挖 8.了解哪些负载均衡算法 还有一些忘了,一面已过,约的5.8二面~