1. 搭建Orleans游戏服务器框架的步骤
  2. 首先 我们先在电脑上选择一个文件夹,来作为我们创建项目的地方,我这里是使用本地F盘的 Teaching 文件夹
  3. 先进入这个文件夹,在顶部的输入栏里 输入 cmd,打开命令行窗口
  4. 我们将输入一段命令行,用来在创建一个服务器端工程OrleansServer 步骤如下
mkdir OrleansServer

# 创建一个名为 OrleansServer 的新目录。这是你将用来存放项目文件的工作目录

cd OrleansServer

# 进入刚刚创建的 OrleansServer 目录。后续的操作将会在这个目录下执行

dotnet new sln -n OrleansServer

# 使用 dotnet new sln 命令创建一个新的解决方案文件。-n OrleansServer 选项指定解决方案的名称为 OrleansServer。

# 解释一下什么是解决方案

# 解决方案文件(.sln)是 .NET 项目的容器,包含一个或多个项目文件 我们这个服务器工程里会有多个项目

dotnet new console -o OrleansServer --framework net7.0

# 创建一个新的控制台应用程序项目,-o OrleansServer 参数指定将项目名字是 OrleansServer

# --framework net7.0 指定项目使用 .NET 7.0 框架

dotnet sln OrleansServer.sln add OrleansServer/OrleansServer.csproj

# 将刚刚创建的 OrleansServer.csproj 项目文件添加到解决方案文件 OrleansServer.sln 中

cd OrleansServer

# 进入到这个OrleansServer.csproj 控制台项目中

dotnet add package Microsoft.Orleans.Server --version 7.0.0

# 通过 dotnet add package 命令为项目添加 Microsoft.Orleans.Server 包,版本是 7.0.0

# Microsoft.Orleans.Server 是 Orleans 框架的核心包,用于构建 Orleans 服务端 (Silo) 实例

dotnet add package Microsoft.Orleans.Core.Abstractions --version 7.0.0

# 添加 Microsoft.Orleans.Core.Abstractions 包,版本是 7.0.0

# 该包提供了 Orleans 核心的抽象类型和接口,通常用于构建 Orleans 中的 Grain 或与 Silo 交互

dotnet add package Microsoft.Orleans.Streaming --version 7.0.0

# 添加 Microsoft.Orleans.Streaming 包,版本是 7.0.0

# 该包为 Orleans 提供了流处理功能,支持消息流和事件流等场景

dotnet add package Microsoft.Extensions.Hosting --version 6.0.1

# 添加 Microsoft.Extensions.Hosting 包,版本为 6.0.1

# 用于构建 .NET 应用程序托管和生命周期管理的扩展包
  1. 总结一下
1. 创建一个新的 .NET 解决方案和控制台项目

2. 配置该项目为 Orleans 服务端(Silo)项目,并安装必要的 Orleans 包和其他依赖
	
	Microsoft.Orleans.Server 用于运行 Orleans Silo服务器
	
	Microsoft.Orleans.Core.Abstractions 提供 Orleans 的核心抽象
	
	Microsoft.Orleans.Streaming 提供流处理功能
	
	Microsoft.Extensions.Hosting 用于.NET 应用程序的生命周期管理
	
  1. 创建了服务器工程后,我们开始 创建主函数Program.cs文件,来启动OrleansServer工程
using Microsoft.Extensions.Hosting;
// 包含创建和管理应用程序生命周期的 API

using Orleans.Configuration;
// 用于 Orleans 配置

namespace OrleansServer
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args)
        {
            IHostBuilder HostBuilder = Host.CreateDefaultBuilder(args);

            // UseOrleans:这是一个扩展方法,用于将 Orleans 配置添加到宿主中

            // 它接受一个 Action<ISiloBuilder> 委托来配置 Orleans 的 Silo

            HostBuilder.UseOrleans(siloBuilder =>
            {
                siloBuilder.UseLocalhostClustering();

                siloBuilder.Configure<ClusterOptions>(options =>
                {
                    options.ClusterId = "ClusterId";

                    options.ServiceId = "ServiceId";
                });
            });

            // UseLocalhostClustering:配置 Orleans 使用本地集群模式,即 Orleans Silo 会运行在本地机器上

            // ClusterId:指定集群的 ID。多个 Silo 可以加入同一个集群来形成一个分布式系统

            // ServiceId:指定服务的 ID,通常用于标识服务或分布式系统中的不同应用

            return HostBuilder;
        }
    }
}

可以运行起来!

完整课程在CSDN学院 课程链接 《Orleans7.0 游戏服务器全栈开发实战》

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐