private byte[] GenerateC2SRequest() { string host = _uri.DnsSafeHost; string path = _uri.AbsolutePath; if (!string.IsNullOrEmpty(_uri.Query)) { path += "?" + _uri.Query; } var origin = "http://" + host; if ("".Equals(path)) { path = "/"; } string handShake = "GET " + path + " HTTP/1.1 \r\n" + "Host: " + host + "\r\n" + "Upgrade: WebSocket\r\n" + "Connection: Upgrade\r\n" + "Sec-WebSocket-Key: " + _hybiKey + "\r\n" + "Origin: " + origin + "\r\n" + "Sec-WebSocket-Protocol: " + _protocol + "\r\n" + "Sec-WebSocket-Version: " + _version + "\r\n\r\n"; return(WebSocketConvert.StringToBytes(handShake, WebSocketTypeEncoding.UTF8));; }
public void PackFragments() { StringBuilder lSB = new StringBuilder(); for (int i = 0; i < mFragments.Length; i++) { lSB.Append(mFragments[i]); mFragments[i] = null; } mByteArray = WebSocketConvert.StringToBytes(lSB.ToString(), WebSocketTypeEncoding.UTF8); }
private static string CalcHybiSecKeyAccept(string aKey) { aKey = aKey + WebSocketMessage.KEY; string lAccept = null; SHA1 lSHA1 = new SHA1CryptoServiceProvider(); byte[] lBufSource = WebSocketConvert.StringToBytes(aKey, WebSocketTypeEncoding.Default); try { byte[] lBufTarget = lSHA1.ComputeHash(lBufSource); lAccept = Convert.ToBase64String(lBufTarget); } catch (Exception lEx) { throw new WebSocketException(WebSocketMessage.ERROR_CONVERTING_BASE64 + lEx.Message); } return(lAccept); }
private string CalcHybiSecKeyAccept() { var key = _hybiKey + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; string acceptedResponseKey = null; var sha1 = new SHA1Managed(); byte[] keyByteArray = WebSocketConvert.StringToBytes(key, WebSocketTypeEncoding.UTF8); try { byte[] hashedKeyByteArray = sha1.ComputeHash(keyByteArray); acceptedResponseKey = Convert.ToBase64String(hashedKeyByteArray); } catch (Exception) { //TODO - handle exception } return(acceptedResponseKey); }
/// <summary> /// Generates the initial Handshake from a Client to the WebSocket. /// </summary> /// <returns>Handshake as byte array.</returns> public byte[] GenerateC2SRequest() { if (mLog.IsDebugEnabled) { mLog.Debug(WebSocketMessage.GENERATING_C2S_REQUEST); } string lHost = mUri.DnsSafeHost; string lPath = mUri.PathAndQuery; mOrigin = WebSocketMessage.HTTP + lHost; if (string.Empty.Equals(lPath)) { lPath = WebSocketMessage.SLASH; } string lHandshake = WebSocketMessage.GET + lPath + WebSocketMessage.HTTP11 + WebSocketMessage.HOST + WebSocketMessage.TWO_POINT + lHost + WebSocketMessage.NL_RETURN + WebSocketMessage.UPGRADE_WEBSOCEKT + WebSocketMessage.NL_RETURN + WebSocketMessage.CONNECTION_UPGRADE + WebSocketMessage.NL_RETURN + WebSocketMessage.SEC_WEBSOCKET_KEY + WebSocketMessage.TWO_POINT + mHybiKey + WebSocketMessage.NL_RETURN + WebSocketMessage.ORIGIN + WebSocketMessage.TWO_POINT + mOrigin + WebSocketMessage.NL_RETURN + WebSocketMessage.SEC_WEBSOCKET_PROTOCOL + WebSocketMessage.TWO_POINT + mProtocol + WebSocketMessage.NL_RETURN + WebSocketMessage.SEC_WEBSOCKET_VERSION + WebSocketMessage.TWO_POINT + mVersion; if (mCookieManage.Count() > 0) { lHandshake += WebSocketMessage.NL_RETURN + mCookieManage.ProcessCookies(mCookieManage.GetCookies(mUri)); } lHandshake += WebSocketMessage.NL_RETURN + WebSocketMessage.NL_RETURN; return(WebSocketConvert.StringToBytes(lHandshake, WebSocketTypeEncoding.ASCII)); }
public byte[] TokenToByte(Token aToken) { return(WebSocketConvert.StringToBytes(TokenToText(aToken), WebSocketTypeEncoding.UTF8)); }
public void SetASCII(string aString) { mByteArray = WebSocketConvert.StringToBytes(aString, WebSocketTypeEncoding.ASCII); }
public void SetUTF8(string aString) { mByteArray = WebSocketConvert.StringToBytes(aString, WebSocketTypeEncoding.UTF8); }
public void SetString(string aString, WebSocketTypeEncoding aEncoding) { mByteArray = WebSocketConvert.StringToBytes(aString, aEncoding); }