public RegisterClusterRequest(IncomingInterserverPacket packet) { ClusterId = packet.ReadUInt(); AuthorizationPassword = packet.ReadString(); Ip = packet.ReadString(); SendPort = packet.ReadString(); }
public static void RegisterClusterRequest(IncomingInterserverPacket packet) { RegisterClusterRequest request = new RegisterClusterRequest(packet); SharpFly_Utility_Library.Database.LoginDatabase.Tables.Cluster clusterTable = SharpFly_Utility_Library.Database.LoginDatabase.Queries.Cluster.Instance.GetCluster(request.ClusterId); Cluster cluster = new Cluster(); cluster.ClientSocket = new PushSocket(String.Format(">tcp://{0}:{1}", request.Ip, request.SendPort)); cluster.ClusterData = new SharpFly_Packet_Library.Helper.Cluster(); cluster.ClusterData.Id = request.ClusterId; cluster.ClusterData.Name = clusterTable.Name; cluster.ClusterData.Ip = request.Ip; if (clusterTable == null) { cluster.SendRegisterClusterSuccesful(0, false); Console.WriteLine("Couldn't register cluster {0}: The cluster id {1} wasn't found in the database", cluster.ClusterData.Name, cluster.ClusterData.Id); return; } if (request.AuthorizationPassword != clusterTable.Password) { cluster.SendRegisterClusterSuccesful(0, false); Console.WriteLine("Couldn't register cluster {0}: Cluster authorization password was wrong", cluster.ClusterData.Name); return; } LoginServer.ClusterManager.AddCluster(cluster); cluster.SendRegisterClusterSuccesful(cluster.ClusterData.Id, true); Console.WriteLine("Cluster identified as {0}!", cluster.ClusterData.Name); }
public static void RegisterNewChannel(IncomingInterserverPacket packet) { RegisterNewChannelRequest request = new RegisterNewChannelRequest(packet); SharpFly_Utility_Library.Database.LoginDatabase.Tables.Cluster clusterTable = SharpFly_Utility_Library.Database.LoginDatabase.Queries.Cluster.Instance.GetCluster(request.ClusterId); uint clusterId = request.ClusterId; Cluster cluster = LoginServer.ClusterManager.GetClusterById(clusterId); if (clusterTable == null || request.AuthorizationPassword != clusterTable.Password) { cluster.SendRegisterNewChannelSuccesful(0, request.TempChannelId, false); Console.WriteLine("Couldn't register new channel to cluster {1}", cluster.ClusterData.Name); return; } if (cluster != null) { Channel channel = new Channel(); channel.Parent = cluster.ClusterData; channel.Id = ChannelId++; channel.Name = request.Name; channel.PlayerCount = 0; channel.MaxPlayerCount = request.MaxPlayerCount; cluster.ClusterData.Channels.Add(channel); cluster.SendRegisterNewChannelSuccesful(channel.Id, request.TempChannelId, true); Console.WriteLine("Registered channel {0} on cluster {1}", channel.Name, cluster.ClusterData.Name); return; } Console.WriteLine("Couldn't register new channel to cluster {1}", cluster.ClusterData.Name); }
private void RegisterNewChannelSuccesful(IncomingInterserverPacket packet) { RegisterNewChannelSuccesful request = new RegisterNewChannelSuccesful(packet); RequestSuccesfulEventArgs args = new RequestSuccesfulEventArgs(request.Succesful, request.ChannelId); OnNewChannelRequestSuccesful(args); }
public static void RegisterChannelRequest(IncomingInterserverPacket packet) { RegisterChannelRequest request = new RegisterChannelRequest(packet); if (request.AuthorizationPassword != (string)ClusterServer.Config.GetSetting("ClusterAuthorizationPassword")) { Console.WriteLine("Couldn't register channel on this cluster"); return; } Channel channel = new Channel(); channel.ClientSocket = new PushSocket(String.Format(">tcp://{0}:{1}", request.Ip, request.SendPort)); channel.ChannelData = new SharpFly_Packet_Library.Helper.Channel(); channel.ChannelData.Id = (uint)new Random().Next(10000, int.MaxValue); channel.ChannelData.Name = request.Name; channel.ChannelData.PlayerCount = 0; channel.ChannelData.MaxPlayerCount = request.MaxPlayerCount; ClusterServer.ChannelManager.AddChannel(channel); SharpFly_Packet_Library.Packets.Interserver.Outgoing.RegisterNewChannelRequest newChannelRequest = new SharpFly_Packet_Library.Packets.Interserver.Outgoing.RegisterNewChannelRequest(ClusterServer.ClusterId, channel.ChannelData.Id, request.AuthorizationPassword, request.Name, request.MaxPlayerCount, ClusterServer.LoginConnector.PublisherSocket); Console.WriteLine("Channel identified as {0}!", channel.ChannelData.Name); }
private void RegisterClusterRequestSuccesful(IncomingInterserverPacket packet) { RegisterClusterSuccesful request = new RegisterClusterSuccesful(packet); RequestSuccesfulEventArgs args = new RequestSuccesfulEventArgs(request.Succesful, request.ClusterId); OnClusterRequestSuccesful(args); }
public RegisterChannelRequest(IncomingInterserverPacket packet) { AuthorizationPassword = packet.ReadString(); Ip = packet.ReadString(); SendPort = packet.ReadString(); Name = packet.ReadString(); MaxPlayerCount = packet.ReadUInt(); }
public RegisterNewChannelRequest(IncomingInterserverPacket packet) { AuthorizationPassword = packet.ReadString(); ClusterId = packet.ReadUInt(); TempChannelId = packet.ReadUInt(); Name = packet.ReadString(); MaxPlayerCount = packet.ReadUInt(); }
private void ProcessData(IncomingInterserverPacket packet) { packet.Position = 0; uint header = packet.ReadUInt(); switch (header) { case OpCodes.REGISTER_CHANNEL_REQUEST_SUCCESFUL: RegisterChannelRequestSuccesful(packet); break; default: Console.WriteLine(String.Format("Unknown packet header {0}", header)); break; } }
public void StartListening() { var poller = new NetMQPoller { ServerSocket }; ServerSocket.ReceiveReady += (s, a) => { byte[] msg; // Receive all messages in the poller while (a.Socket.TryReceiveFrameBytes(out msg)) { IncomingInterserverPacket packet = new IncomingInterserverPacket(msg); ProcessData(packet); } }; poller.RunAsync(); }
public static void ProcessData(IncomingInterserverPacket packet) { packet.Position = 0; uint header = packet.ReadUInt(); switch (header) { case OpCodes.REGISTER_CLUSTER_REQUEST: RegisterClusterRequest(packet); break; case OpCodes.REGISTER_NEW_CHANNEL: RegisterNewChannel(packet); break; default: Console.WriteLine(String.Format("Unknown packet header {0}", header)); break; } }
public void StartListening() { var poller = new NetMQPoller { _SubscriberSocket }; _SubscriberSocket.ReceiveReady += (s, a) => { byte[] msg; // Receive all messages in the poller while (a.Socket.TryReceiveFrameBytes(out msg)) { // Ignore the publisher-subscriber message before the real packet if (StructuralComparisons.StructuralEqualityComparer.Equals(msg, System.Text.Encoding.UTF8.GetBytes("SharpFlyCluster"))) { return; } IncomingInterserverPacket packet = new IncomingInterserverPacket(msg); Channel.Channel.ProcessData(packet); } }; poller.RunAsync(); }
public RegisterNewChannelSuccesful(IncomingInterserverPacket packet) { ChannelId = packet.ReadUInt(); Succesful = packet.ReadBool(); }
public RegisterChannelRequestSuccesful(IncomingInterserverPacket packet) { Accepted = packet.ReadBool(); ChannelId = packet.ReadUInt(); }
public RegisterClusterSuccesful(IncomingInterserverPacket packet) { ClusterId = packet.ReadUInt(); Succesful = packet.ReadBool(); }