ConnectX - 强大的跨平台异地跨网多人游戏库
一个跨平台的 Minecraft P2P 在线多人库,支持异地跨网联机,采用 C# 开发
工具实用辅助
❤️0
👁️3
⬇️0
详细介绍
ConnectX
README in English








一个跨平台的 Minecraft P2P 在线多人库,支持异地跨网联机,采用 C# 开发,使用高性能套接字实现出色的转发性能,由 Zerotier SDK 实现 P2P 功能。
由我们的另一个开源项目提供支持: Hive.Framework

## 架构图


## 快速开始!
我们使用 MSDI(Microsoft.Extensions.DependencyInjection)作为 DI 容器。最佳做法是在程序中使用 .NET Generic Host。
首先,为服务器配置添加以下方法,ConnectXServerIp 将是 ConnectX.Server 的后台地址。
c#<br>private static IClientSettingProvider GetConnectXSettings()<br>{<br> var serverIp = IPAddress.None;<br><br> try<br> {<br> var ips = Dns.GetHostAddresses(ConnectXServerIp);<br> var ipv4Addresses = ips<br> .Where(ip => ip.AddressFamily == AddressFamily.InterNetwork)<br> .Where(ip => !ip.IsLocalIpAddress())<br> .ToArray();<br><br> if (ipv4Addresses.Length > 0)<br> serverIp = ipv4Addresses[0];<br> }<br> catch (Exception ex)<br> {<br> Log.Logger.Error(ex, "Failed to resolve ConnectX server IP.");<br> }<br><br> return new DefaultClientSettingProvider<br> {<br> ServerAddress = serverIp,<br> ServerPort = ConnectXServerPort,<br> JoinP2PNetwork = true<br> };<br>}<br>
然后,只需要再添加一行即可完成配置!
diff<br>private static void ConfigureServices(IServiceCollection services)<br>{<br> // ...<br>+ services.UseConnectX(GetConnectXSettings);<br> // ...<br>}<br>
## 如何使用?
将 IServerLinkHolder 和 Client 注入要管理房间实例的 ViewModel 当中。
### 连接到服务器
c#<br>await _serverLinkHolder.ConnectAsync(CancellationToken.None);<br>
### 执行任何房间相关操作
> [!IMPORTANT]
> 请确保在执行任何房间操作前您已经成功和服务器建立了连接,否则可能会出现预期之外的结果!
>
> c#<br>> await TaskHelper.WaitUntilAsync(() => _serverLinkHolder is { IsConnected: true, IsSignedIn: true });<br>>
c#<br>var message = new CreateGroup<br>{<br> UserId = _serverLinkHolder.UserId,<br> RoomName = createRoomRecord.RoomName,<br> RoomDescription = createRoomRecord.RoomDescription,<br> RoomPassword = createRoomRecord.RoomPassword,<br> IsPrivate = createRoomRecord.IsPrivateRoom,<br> MaxUserCount = 3<br>};<br><br>var (groupInfo, status, err) = await _multiPlayerClient.CreateGroupAsync(message, CancellationToken.None);<br><br>if (groupInfo == null || status != GroupCreationStatus.Succeeded || !string.IsNullOrEmpty(err))<br>{<br> // Error process<br> return;<br>}<br><br>_multiPlayerClient.OnGroupStateChanged += MultiPlayerClientOnGroupStateChanged;<br><br>// Other actions<br>
## 开源协议
MIT。这意味着您可以出于任何目的修改或使用我们的代码,但您的软件的所有副本或重要部分都应包含版权声明和许可声明。
## 统计信息

## 免责声明
ConnectX 与 Mojang 或其软件的任何部分均无关联。
## 耻辱柱
在此,我们将列出所有使用我们的代码但未遵守 MIT 许可的程序。
创作者信息
CoronaStudio
创作者
资源信息
类型工具软件
发布时间2025/3/6
更新时间2026/3/11
游戏版本1.19.2
运行平台windows
运行环境client-and-server