public static IWebSocketHandler Create(WebSocketHttpRequest request, Action <string> onMessage)
 {
     return(new ComposableHandler
     {
         TextFrame = Draft76Handler.FrameText,
         Handshake = sub => Draft76Handler.Handshake(request, sub),
         ReceiveData = data => ReceiveData(onMessage, data)
     });
 }
        public static IWebSocketHandler BuildHandler(WebSocketHttpRequest request, Action <string> onMessage, Action onClose, Action <byte[]> onBinary)
        {
            var version = GetVersion(request);

            switch (version)
            {
            case "76":
                return(Draft76Handler.Create(request, onMessage));

            case "7":
            case "8":
            case "13":
                return(Hybi13Handler.Create(request, onMessage, onClose, onBinary));
            }

            throw new WebSocketException(WebSocketStatusCodes.UnsupportedDataType);
        }