public static void OnReceiveFromWebSocket(WebSocketClient client, byte[] data, int length) { try { switch ((char)data [0]) { // Reconnect case 'R': { if (client.UOSocket != null && client.UOSocket.Connected) client.UOSocket.Close (); goto case 'C'; } // Connect case 'C': { string[] strData = Encoding.ASCII.GetString (data, 0, data.Length).Split (' '); for (int i = 0; i < strData.Length; i++) Console.Write (strData [i] + ","); client.UOSocket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Console.WriteLine (string.Join (",", strData)); client.UOSocket.BeginConnect (strData [1], int.Parse (strData [2]), new AsyncCallback (UOConnectCallback), client); break; } // Version case 'V': { GameProxy.Send (client, "Version {0}", UOJS.Version); break; } default: { client.UOSocket.BeginSend (data, 0, data.Length, SocketFlags.None, new AsyncCallback (UOSendCallback), client); break; } } } catch (Exception e) { UOJS.Log ("Client [d/c]: Threw {0}... closing!", e.GetType ()); UOJS.Log (e.StackTrace); client.Close (); } }