mbr*_*ber 4 c# udp tcp http unity-game-engine
我期待设计一个玩家可以的系统
运行游戏,点击按钮进入竞技场,这将把他的IP地址/玩家资料/网络统计数据发送到服务器.
配对/大厅服务器将保留所有可用玩家的集合.它会不断寻找那些"匹配"的玩家对(算法现在不重要).
当它找到两个排队的"匹配"玩家时,根据玩家资料数据,它将选择一个玩家作为服务器,然后通知游戏客户已找到匹配.根据客户端收到的通知,被选为服务器的客户端将启动服务器,而另一个玩家的客户端将在准备好时连接到该初始化服务器.
设置它的好方法是什么?我的第一个想法是通过HTTP POST发送玩家统计数据.但在某些情况下,在服务器找到匹配项之前可能需要几分钟,并响应玩家将拥有什么类型的连接以及他们的对手将是谁.HTTP适合这个吗?或者这应该是一个较低级别的定制套接字方法?还是我完全离开这里?
PS游戏是在Unity中开发的.我更喜欢不仅仅是答案的答案,"这里是一个有效插件的链接",因为我有兴趣了解这通常实现的架构.
任何指导将不胜感激.
我已经对这些类型的系统做了很多工作.如果我是你,我会有一个http端点设置来处理这样的情况.在游戏中http post/get是一个糟糕的主意,但在用户界面中它真的不错.您可以每5秒轮询一次,或让服务器告诉客户端何时再次询问.
您也可以使用UDP并来回发送ping以确定客户端是否已连接而不是使用timmy进入TCP井(感觉非常安全,但不要让那个头发欺骗你).关于这一点的好处是开销比http post /得到的方式少,缺点是碎片和顺序(当然如果你有一个合适的状态机,那么顺序并不重要).
所以,考虑到所有这些,这里是我使用http的建议(同样可以使用udp进行一些调整,但我会使用http,因为那时我不必进入碎片的东西).
设置和IIS服务器与托管{插入框架在这里(WCF,WebAPI,aspx页面,甚至PHP)}.
为了让生活更轻松,请创建一个包装类,其中包含您需要的每个可能的api调用.
我想你想要的电话会是这样的( - >表示服务器,< - 是来自get/post的http响应).
希望这会有所帮助.也像我说的那样,你可以用UDP完成同样的事情.我真的不会进入TCP(从经验).
| 归档时间: |
|
| 查看次数: |
4092 次 |
| 最近记录: |