Poco::Net

class WebSocketImpl

Library: Net
Package: WebSocket
Header: Poco/Net/WebSocketImpl.h

Description

This class implements a WebSocket, according to the WebSocket protocol described in RFC 6455.

Inheritance

Direct Base Classes: StreamSocketImpl

All Base Classes: SocketImpl, StreamSocketImpl, Poco::RefCountedObject

Member Summary

Member Functions: acceptConnection, bind, bind6, close, connect, connectNB, frameFlags, getReceiveTimeout, getSendTimeout, listen, mustMaskPayload, receiveBytes, receiveFrom, receiveNBytes, secure, sendBytes, sendTo, sendUrgent, setReceiveTimeout, setSendTimeout, shutdown, shutdownReceive, shutdownSend

Inherited Functions: acceptConnection, address, available, bind, bind6, close, connect, connectNB, duplicate, error, fcntl, getBlocking, getBroadcast, getKeepAlive, getLinger, getNoDelay, getOOBInline, getOption, getRawOption, getReceiveBufferSize, getReceiveTimeout, getReuseAddress, getReusePort, getSendBufferSize, getSendTimeout, init, initSocket, initialized, ioctl, lastError, listen, peerAddress, poll, receiveBytes, receiveFrom, referenceCount, release, reset, secure, sendBytes, sendTo, sendUrgent, setBlocking, setBroadcast, setKeepAlive, setLinger, setNoDelay, setOOBInline, setOption, setRawOption, setReceiveBufferSize, setReceiveTimeout, setReuseAddress, setReusePort, setSendBufferSize, setSendTimeout, shutdown, shutdownReceive, shutdownSend, socketError, sockfd

Enumerations

Anonymous protected

FRAME_FLAG_MASK = 0x80

MAX_HEADER_LENGTH = 14

Constructors

WebSocketImpl

WebSocketImpl(
    StreamSocketImpl * pStreamSocketImpl,
    bool mustMaskPayload
);

Creates a StreamSocketImpl using the given native socket.

Destructor

~WebSocketImpl protected virtual

virtual ~WebSocketImpl();

Member Functions

acceptConnection virtual

virtual SocketImpl * acceptConnection(
    SocketAddress & clientAddr
);

bind virtual

virtual void bind(
    const SocketAddress & address,
    bool reuseAddress = false
);

bind6 virtual

virtual void bind6(
    const SocketAddress & address,
    bool reuseAddress = false,
    bool ipV6Only = false
);

close virtual

virtual void close();

connect virtual

virtual void connect(
    const SocketAddress & address
);

connect virtual

virtual void connect(
    const SocketAddress & address,
    const Poco::Timespan & timeout
);

connectNB virtual

virtual void connectNB(
    const SocketAddress & address
);

frameFlags inline

int frameFlags() const;

Returns the frame flags of the most recently received frame.

getReceiveTimeout virtual

virtual Poco::Timespan getReceiveTimeout();

getSendTimeout virtual

virtual Poco::Timespan getSendTimeout();

listen virtual

virtual void listen(
    int backlog = 64
);

mustMaskPayload inline

bool mustMaskPayload() const;

Returns true if the payload must be masked.

receiveBytes virtual

virtual int receiveBytes(
    void * buffer,
    int length,
    int flags
);

Receives a WebSocket protocol frame.

receiveFrom virtual

virtual int receiveFrom(
    void * buffer,
    int length,
    SocketAddress & address,
    int flags = 0
);

secure virtual

virtual bool secure() const;

sendBytes virtual

virtual int sendBytes(
    const void * buffer,
    int length,
    int flags
);

Sends a WebSocket protocol frame.

sendTo virtual

virtual int sendTo(
    const void * buffer,
    int length,
    const SocketAddress & address,
    int flags = 0
);

sendUrgent virtual

virtual void sendUrgent(
    unsigned char data
);

setReceiveTimeout virtual

virtual void setReceiveTimeout(
    const Poco::Timespan & timeout
);

setSendTimeout virtual

virtual void setSendTimeout(
    const Poco::Timespan & timeout
);

shutdown virtual

virtual void shutdown();

shutdownReceive virtual

virtual void shutdownReceive();

shutdownSend virtual

virtual void shutdownSend();

receiveNBytes protected

int receiveNBytes(
    void * buffer,
    int bytes
);