protected override void NewConnection(object sender, SocketArgs args) { try { string request = string.Format( "GET {0} HTTP/1.1" + Environment.NewLine + "Upgrade: WebSocket" + Environment.NewLine + "Connection: Upgrade" + Environment.NewLine + "Host: {1}" + Environment.NewLine + "Origin: {2}" + Environment.NewLine + "Pragma: no-cache" + Environment.NewLine + "Cache-Control: no-cache" + Environment.NewLine + "Accept-Encoding: gzip, deflate" + Environment.NewLine + "Sec-WebSocket-Version: 13" + Environment.NewLine + "Sec-WebSocket-Key: " + Hybi.GenerateKey() + "" + Environment.NewLine + "Sec-WebSocket-Extensions: permessage-deflate; client_no_context_takeover; server_no_context_takeover" + Environment.NewLine + Environment.NewLine, "/", args.Socket.Endpoint, "null"); if (!this.SendRaw(MemoryUtils.ToLatin(request))) { Console.WriteLine("Sendraw failed?"); throw new Exception("Sendraw failed?"); } } catch (ObjectDisposedException ex) { Console.WriteLine(ex.Message); return; } }