/// <summary>
        /// 完成与客户端握手并开启数据交流过程
        /// </summary>
        ///<param name="param">用于WebSocket握手响应用的参数</param>
        /// <returns></returns>
        public Task Open(IDictionary <string, object> param = null)
        {
            //尝试握手,同意请求
            //如果握手成功
            if (_webSocket.Accept(param))
            {
                _content = new WSContext(_webSocket);

                //激活OnAccept事件,通知应用层握手已经完成
                OnAccept(_content);


                //开始接受远端数据
                //本方法只需在连接成功后调用一次,然后就能不断继续。
                _webSocket.StartAsync();


                //返回WebSocket工作任务
                return(_webSocket.WorkTask);
            }

            //如果握手失败
            Console.WriteLine("Error: 与客户端握手失败, 客户端 IP 地址是: {0}", _webSocket.RemoteIpAddress);

            //返回(失败的)完成任务
            return(Task.FromResult(new Exception("WebSocket Accept Error.")));
        }
 /// <summary>
 /// 与客户端握手完成事件
 /// </summary>
 ///<param name="content">当前会话对象</param>
 protected virtual void OnAccept(WSContext content)
 {
 }
 /// <summary>
 /// 接收到客户端数据事件
 /// </summary>
 /// <param name="content">会话对象</param>
 /// <param name="message">内容</param>
 protected abstract void OnMessage(WSContext content, string message);
 /// <summary>
 /// 客户端关闭事件
 /// </summary>
 /// <param name="content">会话对象</param>
 protected abstract void OnClose(WSContext content);
 /// <summary>
 /// 发送完成事件
 /// </summary>
 /// <param name="content">会话对象</param>
 protected abstract void OnSendComplete(WSContext content);