# File lib/pusher-client/websocket.rb, line 67
    def receive
      raise "no handshake!" unless @handshaked

      begin
        data = @socket.read_nonblock(1024)
      rescue *WAIT_EXCEPTIONS
        IO.select([@socket])
        retry
      end
      @frame << data

      messages = []
      while message = @frame.next
        if message.type === :ping
          send(message.data, :pong)
          return messages
        end
        messages << message.to_s
      end
      messages
    end