Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >游戏大厅的多个节点/快递/Socket.io服务器?

游戏大厅的多个节点/快递/Socket.io服务器?
EN

Game Development用户
提问于 2023-04-25 03:55:21
回答 1查看 50关注 0票数 0

在网络上构建一个多人游戏,能够同时处理数千名玩家,分成独立的大厅/会议。可能有20名球员在一个大厅,10名在另一个,30在另一个,等等。

我正在使用NodeJS、Express和Socket.io,但我对一些事情不太确定。我假设我的整个应用程序将运行在一个NodeJS服务器上,但是每个游戏大厅都会产生自己的快递服务器和或自己的socket.io服务器。

或者,它们都可以共享相同的中央单一快车服务器,但该快递服务器将为它们生成独立的socket.io服务器(如果可能的话)。

对我来说,最不可能的情况是只有一台socket.io服务器供所有大堂使用,并使用Socket.IO的“房间”功能来区分它们。这似乎是不正确的,因为房间是服务器端唯一关心的问题,所有客户端的‘都会发出到同一个服务器上,可能会影响性能。

将我的不确定性正式化为四个问题:

会在一个NodeJS实例上运行吗?

我想要多个Exress/HTTP服务器吗?

我会有多个Socket.IO服务器吗?

多线程/并发的含义/要求是什么?

EN

回答 1

Game Development用户

发布于 2023-05-11 09:40:44

这是一个相当大的问题,答案是“视情况而定”。

您将看到单个node.js实例上的数百个连接的基准测试,但这些基准通常都是无用的,因为它们实际上并没有做任何“工作”。不需要任何处理就发送消息。这不是您的服务器可能会做的,所以它们没有那么有用。有一些负载测试的信息在socket.io网站上,可能会更有帮助,以确保您的特定游戏将规模。

尽管如此,还是有一些考虑因素:

缩放插座可能会很困难。当您引入多个服务器时,您需要引入一种方法来确保位于同一游戏大厅中的用户实际上连接到同一个socket.io实例,这样您就不会在用户之间通过网络进行通信。这可能是困难的,也可能是琐碎的,这取决于您如何让用户加入大厅(也许他们只能在连接到的同一个实例上看到大厅)。

当您为您的游戏大厅生成一个单独的socket.io实例时,如果它存在于同一个实例(IE:您正在使用叉子或某个子集),那么您仍然受到主机系统硬件的限制。

如果你正在为每个游戏游说旋转单个进程,那么我不确定你是否真的那么关心并发/多线程wrt到你的游戏本身。对我来说,你可以把它分成几个大厅,这意味着在大厅内发生的任何事情都是受限的,不应该影响大厅之外的任何事情(除了玩家)。并发/多线程将遇到的问题达到了“跨”的程度。这是当你需要触摸另一个过程正在接触的东西的时候。不知道你的游戏,很难说你会在哪里遇到问题。

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

https://gamedev.stackexchange.com/questions/205418

复制
相关文章
卡牌类游戏游戏大厅——上篇
通常在打开一个游戏后的基础流程包括登录/注册->选择游戏区域->认证->进入大厅->选择房间/建立房间->进入房间->等待游戏/建立游戏->游戏中。以上环节中,游戏大厅包含了登录和进入游戏前的策略,针对其中的每一环节都需要思考其中的实现细节,今天阿巩将以卡牌类游戏为例,来看实现一个游戏大厅的流程及需要注意的细节。It will all be okay,日拱一卒,我们开始吧!
才浅Coding攻略
2022/12/12
1.2K0
卡牌类游戏游戏大厅——上篇
卡牌类游戏游戏大厅——下篇
我们继续昨天的上篇,在注册/登录->选择游戏区域->认证->进入大厅之后就是选择房间/创建房间,也就是进入到了大厅与游戏对接的部分。
才浅Coding攻略
2022/12/12
1.1K0
某棋牌游戏大厅座位内存分析过程
目标:通过内存判断每个座位上是否有玩家。所以,要找到每个桌子、每个座位相关内存的排布规律及其内存基址。
用户2135432
2019/01/03
2.3K1
ElasticSearch ——单台服务器部署多个节点
一般情况下单台服务器只会部署一个 ElasticSearch node,但是在学习过程中,很多情况下会需要实现 ElasticSearch 的分布式效果,所以需要启动多个节点,但是学习开发环境(不想开多个虚拟机实现多个服务器的效果),所以就想着在一台服务器上部署多个结点(下文以2个结点作为例子),两个节点分别称为实例一、二。
小小科
2018/07/31
2K0
ElasticSearch ——单台服务器部署多个节点
PUN☀️四、服务器大厅建房解析
PlayerNumbering作为PUN实用脚本,挂载到场景中,配合我们写的代码。
星河造梦坊官方
2024/08/15
890
PUN☀️四、服务器大厅建房解析
PUN☀️三、服务器大厅、服务器房间
注意:在连接服务器失败OnDisconnected() 时,显示开始连接和输入名字:
星河造梦坊官方
2024/08/15
980
PUN☀️三、服务器大厅、服务器房间
ElasticSearch5.5.1 单台服务器部署多个节点
在单台服务器上部署多个节点,一般主要针对的是学习阶段,正式环境一台服务器只会部署一个节点,以实现分布式效果。下面是在单台服务器部署两个节点的方法。
PHP学习网
2022/08/03
9510
你的快递为何非要是快递,它也可以是“文件快递”
今天我给大家推荐一个文件快递柜,它可以让使用者像拿快递一样取文件!这个工具是FileCodeBox。
青阳
2024/04/01
5330
socket.io的websocket示例
写了一个简单的demo,直接上代码吧。用的时候注意一下版本号,可能 socket.io 的 API 有修改~
meteoric
2018/12/28
1.2K0
socket.io
本译文来源于https://socket.io/get-started/chat/,不足之处请多批评指正。 最近在学些vuejs和websocket相关技术,使用了websocket的两个封装的库vue-socket.io和vue-websocket
ccf19881030
2020/04/10
3.9K0
socket.io
快递公司接入快递100的快递实时查询接口示例
https://api.kuaidi100.com/document/60509213a52d305ab4d2a1cb.html
快递100API
2021/05/20
8170
快递公司接入快递100的快递实时查询接口示例
快递公司接入快递100的快递查询订阅推送接口示例
快递100在希望贵司跟踪某个运单的时候,向贵司发起订阅请求,由贵司那边跟踪这个运单的轨迹变化,并且把相关消息推送到快递100。
快递100API
2021/05/20
9560
快递公司接入快递100的快递查询订阅推送接口示例
socket.io搭建分布式Web推送服务器
socket.io是目前较为流行的web实时推送框架,其基于nodejs语言开发,底层用engine.io实现。 借助nodejs语言异步的特性,其获得了不错的性能。但单个实例的socket.io依然承载能力有限,最多只能容纳3000个long-polling方式的客户端进行连接。
星哥玩云
2022/07/03
2K0
nginx 代理多个服务器——多个server方式
上一篇文章(http://blog.csdn.net/wild46cat/article/details/52840125)介绍了nginx的基本配置和使用方法,并且简单的介绍了一下如何利用nginx结合tomcat进行使用,达到反向代理的作用。现在我们要使用nginx达到这样的一个目的,能够代理多个服务器。
Java架构师必看
2021/05/14
7.1K0
nginx 代理多个服务器——多个server方式
快递100支持的快递1100+家快递公司编码案例
快递公司partnerId,partnerKey,net,code是否必填(*为必填)
快递100API
2021/05/24
1.4K0
快递100支持的快递1100+家快递公司编码案例
PUN☀️一、基础配置、搭建大厅程序
你可以直接输入你申请的Appid,点Setup Project;或Skip跳过,选择Project里的PhotonServerSettings,将配置好的Appid填入该位置。
星河造梦坊官方
2024/08/15
1170
PUN☀️一、基础配置、搭建大厅程序
jQuery游戏节点的动态新增和删除的实现
用户9184480
2024/12/19
450
jQuery游戏节点的动态新增和删除的实现
牛牛的快递
用户11305962
2024/10/09
540
牛牛的快递
聊聊多个节点实例数据同步如何触发
之前写过一篇文章聊聊在集群环境中本地缓存如何进行同步,今天聊的话题看着和那篇文章有点雷同,不过我们今天重点会放在方法论上,也不会拘泥于具体实现。在聊这个话题之前,大家可以思考一下,如果要实现多个实例数据同步触发,大家会怎么做?脑海里,是会浮现,我可以用消息队列或者定时器来实现?这种已经具象化的技术细节?还是进一步进行拆解?
lyb-geek
2023/10/24
2130
聊聊多个节点实例数据同步如何触发
聊聊多个节点实例数据同步如何触发
之前写过一篇文章聊聊在集群环境中本地缓存如何进行同步,今天聊的话题看着和那篇文章有点雷同,不过我们今天重点会放在方法论上,也不会拘泥于具体实现。在聊这个话题之前,大家可以思考一下,如果要实现多个实例数据同步触发,大家会怎么做?脑海里,是会浮现,我可以用消息队列或者定时器来实现?这种已经具象化的技术细节?还是进一步进行拆解?
lyb-geek
2023/10/29
3120
聊聊多个节点实例数据同步如何触发

相似问题

为网络多人游戏设计大厅的建议?

10

如何在我的游戏中建立一个聊天大厅?

20

如何使用绝地求生API邀请玩家到我的大厅或自定义游戏?

10

大厅和游戏室应该是数据库表还是数组?

10

多人游戏大厅试图将地图名传递给MasterServer.RegisterHost时出现的问题

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文