public static async Task OpenSocket(Packet packet) { var ap = new TcpCOpenSocket(packet); var app = AppManager.PublishedApps.FirstOrDefault(x => x.InstanceId.SequenceEqual(ap.InstanceId)); var reply = new byte[0]; if (app == null) { reply = new TcpCSSocketControl(new byte[10], TcpCSSocketControl.OpenAck | TcpCSSocketControl.Close, packet.Nonce).Build(); } else { AppConnection connection = new AppConnection(packet.Connection, app); await connection.SendInitialState(packet); } await packet.Connection.Stream.WriteAsync(reply); }
public static async Task ConnectionControl(Packet packet) { TcpCSSocketControl control = new TcpCSSocketControl(packet); var conn = AppConnection.Connections[AppConnection.IdToString(control.SocketId)]; await conn.ProcessControl(packet); }
public static async Task SocketData(Packet packet) { TcpCSSocketData data = new TcpCSSocketData(packet); var conn = AppConnection.Connections[AppConnection.IdToString(data.SocketId)]; await conn.Send(packet.Connection.Socket, data.SocketData); }