/// <summary> /// Connects to server /// </summary> /// <param name="creds"></param> /// <returns></returns> public static NodeRegionServer ConnectToServer(Tuple <string, int> creds) { var s = NodeRegionServer.Connect(creds.Item1, (ushort)(creds.Item2 + 10000), (ushort)creds.Item2).Result; s.OnPacketReceived += (pak, len) => GameServer.Instance.HandleValidUdpPacket(pak, pak.Length); return(s); }
/// <summary> /// Inits all connections /// </summary> public static bool Init() { log.Info("Connecting to Region Servers .."); if (GameServer.Instance.IsLive) { Default = TryConnect("myserver.example", 10400); } else { Default = TryConnect("localhost", 10401); } return(true); }
public static async Task <NodeRegionServer> Connect(string host, ushort rpcPort, ushort tcpPort) { // RPC var options = new List <ChannelOption>(); options.Add(new ChannelOption(ChannelOptions.MaxMessageLength, 65536 /* needs to match server */)); Channel channel = new Channel(host, rpcPort, ChannelCredentials.Insecure, options); await channel.ConnectAsync(DateTime.UtcNow.AddSeconds(20)); // TCP TcpRelaySocket sock = new TcpRelaySocket(host, tcpPort); var server = new NodeRegionServer(channel, new RegionService.RegionServiceClient(channel), sock); await server.Init(); return(server); }