3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/websockets/CloseStatusCode.h"
7#include "mc/websockets/OpCode.h"
8#include "mc/websockets/WSConnectionResult.h"
14namespace RakNet {
class BitStream; }
20 enum class PacketDirection :
int {
26 enum class ConnectionState :
int {
31 OpenHandshakeInit = 4,
32 OpenHandshakeAwait = 5,
33 OpenAndProcessing = 6,
81 virtual ::WSConnectionResult connect(::std::string
const& uri, ::std::vector<::std::string>
const& subProtocols);
84 virtual ::WSConnectionResult connect(::std::string
const& uri);
87 virtual bool isReady()
const;
93 virtual void setOnCloseHandler(::std::function<
void(::CloseStatusCode, ::std::string
const&)>
const& handler);
96 virtual void setOnConnectedHandler(::std::function<
void(::std::string
const&)>
const& handler);
102 virtual void _updateState() = 0;
105 virtual uint _genMaskingKey()
const = 0;
111 MCNAPI
RakWebSocket(::std::unique_ptr<::TcpProxy> proxy,
bool isServer);
117 MCNAPI
void _fail(::std::string
const& error, ::CloseStatusCode
code);
132 MCNAPI
bool _sendDataFrame(uchar
const* payload, uint size, ::OpCode opCode,
bool isFinalFragment);
137 _splitWebSocketURI(::std::string
const& uri, ::std::string& scheme, ::std::string& host, ::std::string& path);
145 MCNAPI
bool send(::std::string
const& message);
151 MCNAPI
void*
$ctor(::std::unique_ptr<::TcpProxy> proxy,
bool isServer);
163 MCNAPI ::WSConnectionResult
$connect(::std::string
const& uri, ::std::vector<::std::string>
const& subProtocols);
165 MCNAPI ::WSConnectionResult
$connect(::std::string
const& uri);
171 MCNAPI
void $setOnCloseHandler(::std::function<
void(::CloseStatusCode, ::std::string
const&)>
const& handler);
Definition RakWebSocketDataFrame.h:13
Definition RakWebSocket.h:17
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)