3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/websockets/CloseStatusCode.h"
7#include "mc/websockets/OpCode.h"
8#include "mc/websockets/WSConnectionResult.h"
20 enum class ConnectionState :
int {
25 OpenHandshakeInit = 4,
26 OpenHandshakeAwait = 5,
27 OpenAndProcessing = 6,
30 enum class PacketDirection :
int {
70 RakWebSocket& operator=(RakWebSocket
const&);
71 RakWebSocket(RakWebSocket
const&);
77 virtual ~RakWebSocket();
79 virtual ::WSConnectionResult connect(::std::string
const& uri, ::std::vector<::std::string>
const& subProtocols);
81 virtual ::WSConnectionResult connect(::std::string
const& uri);
83 virtual bool isReady()
const;
87 virtual void setOnCloseHandler(::std::function<
void(::CloseStatusCode, ::std::string
const&)>
const& handler);
89 virtual void setOnConnectedHandler(::std::function<
void(::std::string
const&)>
const& handler);
93 virtual void _updateState() = 0;
95 virtual uint _genMaskingKey()
const = 0;
101 MCNAPI
RakWebSocket(::std::unique_ptr<::TcpProxy> proxy,
bool isServer);
107 MCNAPI
void _fail(::std::string
const& error, ::CloseStatusCode
code);
124 MCNAPI
bool _sendDataFrame(uchar
const* payload, uint size, ::OpCode opCode,
bool isFinalFragment);
129 _splitWebSocketURI(::std::string
const& uri, ::std::string& scheme, ::std::string& host, ::std::string& path);
137 MCNAPI
bool send(::std::string
const& message);
143 MCNAPI
void*
$ctor(::std::unique_ptr<::TcpProxy> proxy,
bool isServer);
155 MCNAPI ::WSConnectionResult
$connect(::std::string
const& uri, ::std::vector<::std::string>
const& subProtocols);
157 MCNAPI ::WSConnectionResult
$connect(::std::string
const& uri);
163 MCNAPI
void $setOnCloseHandler(::std::function<
void(::CloseStatusCode, ::std::string
const&)>
const& handler);
Definition RakWebSocketDataFrame.h:13
MCAPI void _subProcessHttpResponse(::RakNet::BitStream &newIncoming)
MCAPI bool _sendControlFrame(uchar const *payload, uint64 size, ::OpCode opCode)
MCAPI void _processClosingHandshake(bool notifyHandler)
MCAPI void _createWebSocketKey()
MCAPI void $setOnCloseHandler(::std::function< void(::CloseStatusCode, ::std::string const &)> const &handler)
MCAPI bool send(::std::string const &message)
MCAPI void _fail(::std::string const &error, ::CloseStatusCode code)
MCAPI void $setOnMessageReceivedHandler(::std::function< void(::RakWebSocketDataFrame const &)> const &handler)
MCAPI::WSConnectionResult $connect(::std::string const &uri, ::std::vector<::std::string > const &subProtocols)
MCAPI::WSConnectionResult $connect(::std::string const &uri)
static MCAPI void ** $vftable()
MCAPI void * $ctor(::std::unique_ptr<::TcpProxy > proxy, bool isServer)
MCAPI bool _sendNonControlFrame(uchar const *payload, uint64 size, ::OpCode opCode)
MCAPI bool _validateWebSocketURI()
MCAPI bool _processPacket(::std::function< void(::RakNet::BitStream &)> const &processStep, bool acceptNewConnection)
MCAPI RakWebSocket(::std::unique_ptr<::TcpProxy > proxy, bool isServer)
MCAPI void _splitWebSocketURI(::std::string const &uri, ::std::string &scheme, ::std::string &host, ::std::string &path)
MCAPI bool _sendDataFrame(uchar const *payload, uint size, ::OpCode opCode, bool isFinalFragment)
MCAPI bool $isReady() const
MCAPI void $setOnConnectedHandler(::std::function< void(::std::string const &)> const &handler)
MCAPI void _close(::CloseStatusCode code)
MCAPI void _validateFields()
MCAPI::std::string _generateBase64SHA1Key(::std::string const &key)
MCAPI void _processDataFrames(::RakNet::BitStream &newIncoming)