public virtual bool TryHandshake(WebSocketContext context, out IWebSocketReceiveFilter filter) { filter = null; var secWebSocketVersion = context.HandshakeRequest.Get(WebSocketConstant.SecWebSocketVersion); if (secWebSocketVersion == m_VersionTag) { filter = new T(); return(true); } return(false); }
public bool TryHandshake(WebSocketContext context, out IWebSocketReceiveFilter filter) { var responseBuilder = new StringBuilder(); responseBuilder.AppendWithCrCf("HTTP/1.1 400 Bad Request"); responseBuilder.AppendWithCrCf("Upgrade: WebSocket"); responseBuilder.AppendWithCrCf("Connection: Upgrade"); responseBuilder.AppendWithCrCf("Sec-WebSocket-Version: " + string.Join(", ", m_Versions.Select(i => i.ToString()).ToArray())); responseBuilder.AppendWithCrCf(); var switchResponse = Encoding.UTF8.GetBytes(responseBuilder.ToString()); filter = new MultipleProtocolSwitchReceiveFilter(switchResponse); return(true); }
public override bool TryHandshake(WebSocketContext context, out IWebSocketReceiveFilter filter) { filter = null; var header = context.HandshakeRequest; var secKey1 = header.Get(WebSocketConstant.SecWebSocketKey1); var secKey2 = header.Get(WebSocketConstant.SecWebSocketKey2); if (!string.IsNullOrEmpty(secKey1) && !string.IsNullOrEmpty(secKey2)) { filter = new DraftHybi00ReceiveFilter(); return(true); } return(false); }
public bool TryHandshake(WebSocketContext context, out IWebSocketReceiveFilter filter) { filter = new MultipleProtocolSwitchReceiveFilter(m_SwitchResponse); return(true); }