anchor.diff:            FWsFrame.DoCleanUp();
           end else
           begin
  -          if Assigned(FOnRecv) then
  -          begin
  -            FOnRecv(Self);
  -          end;
  +          DoRecv();
  +
             FWsFrame.DoCleanUp;
             FWebSocketContentBuffer.Clear;
           end;      
  
positive.code:     procedure OnConnected; override;
      procedure OnDisconnected; override;
      procedure OnRecvBuffer(buf: Pointer; len: Cardinal; ErrCode: WORD); override;
    public
      constructor Create; override;
      destructor Destroy; override;
  
negative.code:   FreeAndNil(FURL);
    FreeAndNil(FHeaderBuilder);
    inherited Destroy;
  end;
  
  procedure TDiocpWebSocketContext.DoRecv;
  var
    lvOptCode:Integer;
  begin
    lvOptCode :=FWsFrame.GetOptCode;
    if lvOptCode = OPT_PING then
    begin
      PostWSASendRequest(@WS_MSG_PONG, 2, False);
    end else if lvOptCode = OPT_PONG then
    begin
      ; // {noop}
    end else if lvOptCode = OPT_CLOSE then
    begin
      RequestDisconnect('յWebSocket-Close');
    end else
    begin
      if Assigned(FOnRecv) then
      begin
        FOnRecv(Self);
      end;
    end;
  end;
  
  procedure TDiocpWebSocketContext.OnConnected;
  