如何把游戏挂到云服务器

一、技术介绍

将游戏挂到云服务器,可以实现远程访问和多人联机等功能,本文将介绍如何使用Python的`pycloudmessenger`库和`paho-mqtt`库来实现这一功能,首先需要安装这两个库:

pip install pycloudmessenger paho-mqtt

接下来,我们将分为以下几个步骤进行:

如何把游戏挂到云服务器

1. 创建一个云服务器;

2. 在云服务器上安装并配置`pycloudmessenger`库;

3. 编写一个简单的Python脚本来启动`pycloudmessenger`服务;

4. 将游戏代码部署到云服务器上;

5. 在本地计算机上运行Python脚本,实现远程访问和联机功能。

二、创建云服务器

这里以阿里云为例,创建一个ECS实例(弹性计算服务),登录阿里云官网,选择ECS产品,按照提示完成购买和配置,购买完成后,会得到一个公网IP地址和登录凭证。

三、在云服务器上安装并配置`pycloudmessenger`库

1. 使用SSH工具连接到云服务器;

2. 执行以下命令安装`pycloudmessenger`库:

pip install git+https://github.com/Esri/pycloudmessenger.git

3. 创建一个名为`messaging_settings.json`的配置文件,内容如下:

{
  "project": {
    "name": "your_project_name",
    "namespace": "your_namespace"
  },
  "agent": {
    "operationMode": "pushAndPull",
    "taskWorkerPoolSize": "1",
    "taskDispatcherConfiguration": {
      "COORDINATOR": "your_project_name.your_namespace.coordinator",
      "TASKROUTER": "your_project_name.your_namespace.worker"
    },
    "transportSettings": {
      "IPCEndpointName": "your_project_name.your_namespace",
      "TCPPort": "5700"
    }
  }
}

4. 将配置文件上传到云服务器上的指定目录,例如:`/etc/pycloudmessenger/`;

5. 在云服务器上创建两个Python脚本:`coordinator.py`和`worker.py`,内容分别如下:

```python# coordinator.py

如何把游戏挂到云服务器

from pycloudmessenger import TaskRouter, TaskCollector, COLLECTOR, Configuration, ProjectBundle,

PERSISTENCE_STORE_SQLITE, MessageBroker, PubSubClient, DeliveryResult, PULL_MODE,

STATE_CONNECTED, CONSUMER_TYPE_ANY, PRODUCER_TYPE_ANY, send_task, on_acked, on_failed, on_rejected,

STATE_REJECTED, on_received, setup, start, stop, get_state, get_connection, get_new_message,

gc_brokers, update_config, send_control_command, send_heartbeat, get_task, get_pending_tasks,

sumbit_task, add_task, remove_task, update_task, process_task, workerpool, workerpool_manager,

WorkerStatusUpdaterThread, tasklet, taskletdecorators, workerthreadpool, threadedworkerpoolmanager,

WorkerTaskletWrapperForSingleTaskDispatcherFromMultiThreadingPoolManagerWithRetryPolicyAndHeartBeaterFactoryAndGuaranteedDeliveryTimeOrTimeoutInMillisecondsOrNoneForFailureOrNoneForSuccessOrNoneForNeverSendAndDefaultValueOf5SecondsOrNoneForNoWaitAndDefaultValueOf10SecondsOrNoneForAbortIfNotSentWithinXSecondsOrNoneForNoWaitAndDefaultValueOf10SecondsOrNoneForAbortIfNotSentWithinXSecondsOrNoneForNoWaitAndDefaultValueOf10SecondsOrNoneForAbortIfNotSentWithinXSecondsOrNoneForNoWaitAndDefaultValueOf10SecondsOrNoneForAbortIfNotSentWithinXSecondsOrNoneForNoWaitAndDefaultValueOf10SecondsOrNoneForAbortIfNotSentWithinXSecondsOrNoneForNoWaitAndDefaultValueOf10SecondsOrNoneForAbortIfNotSentWithinXSecondsOrNoneForNoWaitAndDefaultValueOf10SecondsOrNoneForAbortIfNotSentWithinXSecondsOrNoneForNoWaitAndDefaultValueOf10SecondsOrNoneForAbortIfNotSentWithinXSecondsOrNoneForNoWaitAndDefaultValueOf10SecondsOrNoneForAbortIfNotSentWithinXSecondsOrNoneForNoWaitAndDefaultValueOf10Seconds; from pycloudmessenger.storage.sqlite import SQLStorageManager; from pycloudmessenger.message import TextMessage; from pycloudmessenger.message import BinaryMessage; from pycloudmessenger.message import FileMessage; from pycloudmessenger.message import ImageMessage; from pycloudmessenger.message import VideoMessage; from pycloudmessenger.message import AudioMessage; from pycloudmessenger.message import CustomMessage; from pycloudmessenger.protocol import Protocol as pduProtocol; from pycloudmessenger.protocol import JSONProtocol as jsonProtocol; from pycloudmessenger.protocol import GsonProtocol as gsonProtocol; from pycloudmessenerfcm import FCMMessengerBuilder; from pycloudmessenerfcm import OnExceptionOccurredCallback; from pycloudmesserfcmmq import RabbitMQConsumer; from pycloudmesserfcmmq import RabbitMQProducer; from pycloudmesserfcmmq import KafkaConsumer; from pycloudmesserfcmmq import KafkaProducer; from pycloudmesserfcmmq import RedisProducer; from pycloudmesserfcmmq import RedisConsumer; from pycloudmesserfcmmq import GooglePubSubConsumer; from pycloudmesserfcmmq import GooglePubSubProducer; from pycloudmesserfcmmq import AzureServiceBusConsumer; from pycloudmesserfcmmq import AzureServiceBusProducer; from pycloudmesserfcmmq import AWSSQSConsumer; from pycloudmesserfcmmq import AWSSQSProducer;"

"import logging; logger = logging.getLogger('pycloudmessenger'); logger.setLevel(logging.DEBUG) # create a file handler to write to log files 'file': open('pycloudmessenger-log', mode='w') # create a logger with the name 'my-logger' my-logger = logger # set up log output to file handlers for 'my-logger' my-logger.addHandler(file)"

"def onStart(self): pass"

"def onStop(self): pass"

"def onAck(self): pass"

如何把游戏挂到云服务器

"def onNack(self): pass"

"def onRejected(self): pass"

"def onReceived(self): pass"

"def onExceptionOccurred(self): pass"

"class MyOnExceptionCallback(OnExceptionOccurredCallback): def __init__(self): super().__init__() self.onException = None def setOnException(self, callback): self.onException = callback def executeOnException(self): if self.onException is not None: self.onException()"

"class MyOnStartCallback(MyOnExceptionCallback): def __init__(self): super().__init__() self.onStart = None def setOnStart(self, callback): self.onStart = callback def executeOnStart(self): if self.onStart is not None: self.onStart()"

"class MyOnStopCallback(MyOnExceptionCallback): def __init__(self); super().__init__() self.onStop = None def setOnStop(self, callback): self.onStop = callback def executeOnStop(self): if self.onStop is not None: self.onStop()"

"class MyOnAckCallback(MyOnExceptionCallback): def __init__(self); super().__init__() self.onAck = None def setOnAck(self, callback): self.onAck = callback def executeOnAck(self): if self.onAck is not None: self.onAck()"

"class MyOnNackCallback(MyOnExceptionCallback): def __init__(self); super().__init__() self.onNack = None def setOnNack(self, callback): self.onNack = callback def executeOnNack(self): if self.onNack is not None: self.onNack()"

"class MyOnRejectedCallback(MyOnExceptionCallback): def __init__(self); super().__init__() self.onRejected = None def setOnRejected(self, callback): self.onRejected = callback def executeOnRejected(self): if self

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/50951.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seoK-seo
Previous 2023-11-26 02:01
Next 2023-11-26 02:05

相关推荐

  • 云无限怎么样,云无限官网

    哈喽!相信很多朋友都对云无限怎么样不太了解吧,所以小编今天就进行详细解释,还有几点拓展内容,希望能给你一定的启发,让我们现在开始吧!如何评价云流量(无限流量)?1、快速连接 通过使用较小的流量实现超多流量使用效果,您只需消耗几kb流量即可完成登录,有信号的地方即可使用,连接速度极快。2、还可以吧,我之前也是用得这个,但是不太稳定,然后我就换了一个。是比自己花钱买流量要划算得多。

    2023-12-04
    0138
  • 如何选择合适的游戏云服务器设备

    选择合适的游戏云服务器是确保游戏流畅运行、用户体验优良和成本效益最大化的关键因素,以下是挑选合适游戏云服务器时应考虑的几个重要方面:性能需求游戏云服务器的性能直接关系到游戏的运行效率和稳定性,你需要根据游戏的类型、规模以及预期的玩家数量来评估所需的计算能力、内存容量和存储空间,大型多人在线角色扮演游戏(MMORPG)通常需要高性能的C……

    2024-02-12
    0156
  • 小游戏云服务器怎么用

    在当今的数字化时代,小游戏云服务器已经成为了游戏开发者和运营商的重要工具,它不仅提供了稳定的运行环境,还能够实现数据的存储和处理,为游戏的运行提供强大的支持,小游戏云服务器怎么用呢?下面就来详细介绍一下。选择合适的云服务器我们需要选择合适的云服务器,在选择云服务器时,我们需要考虑以下几个因素:1、服务器的稳定性:服务器的稳定性是保证游……

    2024-03-25
    0166
  • 怎么用云服务器玩大型游戏手机

    云服务器是一种基于互联网的虚拟化计算资源,可以提供高性能、高可靠性和可扩展性的计算服务,通过将游戏部署在云服务器上,玩家可以享受到更好的游戏体验,下面将详细介绍如何使用云服务器玩大型游戏。选择适合的云服务器提供商,市面上有许多云服务器提供商,如阿里云、腾讯云、亚马逊AWS等,在选择时,需要考虑服务器的性能、稳定性和价格等因素,可以根据……

    2023-12-03
    0140
  • 便宜好用的游戏云主机怎么租用的

    在当今的数字化时代,游戏云主机已经成为了许多游戏玩家和开发者的首选,它不仅提供了稳定的运行环境,还能够节省硬件成本,同时也能够随时随地进行游戏开发和游玩,如何租用便宜又好用的游戏云主机呢?本文将为你详细介绍。选择合适的云服务提供商你需要选择一个合适的云服务提供商,目前市场上有许多提供游戏云主机服务的公司,如阿里云、腾讯云、华为云等,这……

    2024-01-21
    0180
  • 免费游戏云服务器试用怎么搭建

    免费游戏云服务器试用怎么搭建在互联网时代,游戏行业发展迅速,越来越多的人加入到游戏开发的队伍中,而游戏开发离不开一个稳定的服务器环境,那么如何搭建一个免费的游戏云服务器呢?本文将详细介绍搭建过程。1、选择合适的云服务提供商我们需要选择一个合适的云服务提供商,市面上有很多云服务提供商,如阿里云、腾讯云、华为云等,这些云服务提供商都提供了……

    2024-01-17
    0208

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入