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

在Google Compute Engine上扩展WebSockets

劳鹏云
2023-03-14

我想实现一个聊天系统,作为一个游戏的一部分,我正在开发的应用引擎。为了实现这一点,我希望使用WebSockets,并让客户机通过集线器(在本例中是GCE的一个实例)相互连接。假设这个游戏需要在GCE上扩展到多个实例,这将如何工作呢?如果我有一个客户机1,负载均衡器将客户机1的请求定向到实例a,而另一个客户机(2)进来并被定向到实例B,但是这些客户机想要彼此聊天,它们每个都将连接到不同的集线器,并且彼此无法联系。这将如何建立工作与规模?我是否会使用队列来实现它,每个实例都会监听该队列?如果是这样,我将如何做到这一点?

共有1个答案

冯哲彦
2023-03-14

Google Play Game Services提供了您想要的功能,但在Android和ios客户端方面。因此此选项可能与您的游戏技术设计不兼容。

总的来说,你的推理是正确的。来自客户机的希望彼此对话的消息大多数时候会发送到不同的服务器实例。您想要做的是让实例处理用户之间的通信。pub/sub(发布-订阅模式)是这个场景中非常适合模式。大致:

  • 只要有消息指向客户端X,就会在通道X上发布消息,
  • 每当客户端X创建会话时,处理它的实例就会订阅通道X。

不幸的是,我没有任何扩展这两种解决方案的经验,因此无法为您提供任何关于它们可伸缩性极限的实用建议。

还有一些你可能想要探讨的主题,比如:消息持久性和故障恢复,我在这里根本没有谈到。

 类似资料:
  • Szenario:我有两个扩展,它们用一些特定字段扩展了。在TYPO3 9之前,我必须使用以下打字脚本配置对新闻扩展的依赖关系进行配置: 模型扩展了基本扩展的模型: 在TYPO3 10中,在(中断:#87623): 只要您只有一个扩展新闻扩展名的扩展名,它就可以工作多久。如果您有第二个扩展并启用TYPO3缓存,您将得到一个错误,即在第一个扩展中添加的字段在新闻扩展的模板中不可用。奇怪的是,这个问题

  • 我已经开始使用Azure并测试与Microsoft SQL数据库的连接。我想利用我们目前的php_odbc。dll扩展,而不是使用PDO方法。 我已经通过配置via App设置和配置via ini设置执行了添加扩展的步骤。这两种方法都会导致我的主索引页抛出500错误。我的主要索引。php只包括phpinfo();用于测试的函数。 https://docs.microsoft.com/bs-latn

  • 如何在MAMP(不是PRO)上安装扩展? 我已经编辑了我的文件添加: 当我运行时,我得到以下结果: 配置文件(php.ini)路径:/Applications/MAMP/bin/php/php7。2.10/conf.1 加载的配置文件:/Applications/MAMP/bin/php/php7。2.10/conf/php。伊尼 扫描其他. ini文件:(无) 解析的其他. ini文件:(无)

  • 我在让OCI8在我的服务器安装上工作时遇到了特定的问题。 第一次设置: Win 2008服务器32位 ZendServer for PHP with Apache2.2 PHP版本5.3.14,其中没有php_oci8文件 没有安装甲骨文的东西 我需要能够连接到远程oracle数据库,所以我发现应该使用OCI8扩展。为了使OCI8正常工作,我还应该在服务器上至少需要Oracle Instant C

  • 我已经看过很多这样的帖子,并且都看过了,但是我仍然无法运行SQLSRV扩展。你能帮我吗?我将在下面发布我所有的信息: Windows 7 64位 WampServer 2.2 32位 PHP 5.4.3 32位 Apache 2.2.22(分不清VC6还是VC9) MicrosoftSQLServer 2012本地客户端64位 我下载了SQLSRV30。exe。我将dll文件解压缩到C:\wamp

  • 扩展是专门设计的在 Yii 应用中随时可拿来使用的, 并可重发布的软件包。例如, yiisoft/yii2-debug 扩展在你的应用的每个页面底部添加一个方便用于调试的工具栏, 帮助你简单地抓取页面生成的情况。 你可以使用扩展来加速你的开发过程。 信息: 本文中我们使用的术语 "扩展" 特指 Yii 软件包。而用术语 "软件包" 和 "库" 指代非 Yii 专用的通常意义上的软件包。 使用扩展