public static byte[] createOpenHandshakeHTTPRequest(cape.URL url, string key) { if (!(url != null && key != null)) { return(null); } var sb = new cape.StringBuilder(); sb.append("GET "); var path = url.toStringNohost(); if (cape.String.isEmpty(path)) { sb.append('/'); } else { if (cape.String.getIndexOf(path, '/') != 0) { sb.append('/'); } sb.append(path); } sb.append(" HTTP/1.1\r\n"); sb.append("Host: "); sb.append(url.getHost()); var port = url.getPort(); if (!(object.Equals(port, null))) { sb.append(':'); sb.append(port); } sb.append("\r\n"); sb.append("Upgrade: websocket\r\n"); sb.append("Connection: Upgrade\r\n"); sb.append("Sec-WebSocket-Key: "); sb.append(key); sb.append("\r\nSec-WebSocket-Version: 13\r\n\r\n"); return(cape.String.toUTF8Buffer(sb.toString())); }