Skylicht Engine
Toggle main menu visibility
Loading...
Searching...
No Matches
SocketIO
CSocketIO.h
1
#pragma once
2
3
#include "pch.h"
4
5
#include "HttpRequest/IHttpRequest.h"
6
#include "SocketIO/IWebsocket.h"
7
#include <functional>
8
9
namespace
Skylicht
10
{
11
namespace
Network
12
{
13
class
CSocketIO
14
{
15
public
:
16
enum
EConnectState
17
{
18
None,
19
RequestSocketIO,
20
UpdateSocket,
21
Closed
22
};
23
24
protected
:
25
std::string m_url;
26
std::string m_wsURL;
27
std::string m_wsOriginURL;
28
29
IHttpRequest
* m_httpRequest;
30
31
std::queue<std::string> m_sendData;
32
float
m_sendTimeout;
33
34
EConnectState m_state;
35
36
char
* m_bufferData;
37
38
IWebsocket
* m_ws;
39
40
bool
m_connected;
41
42
std::string m_socketID;
43
44
public
:
45
46
std::function<void()> OnConnected;
47
std::function<void()> OnDisconnected;
48
std::function<void()> OnConnectFailed;
49
std::function<void(
const
std::string&)> OnMessage;
50
std::function<void(
const
std::string&,
int
)> OnMessageAsk;
51
52
public
:
53
CSocketIO(
const
char
* url);
54
55
virtual
~CSocketIO();
56
57
void
update();
58
59
void
forceSend();
60
61
void
init();
62
63
bool
startServices();
64
65
void
setWSURL(
const
char
* ws)
66
{
67
m_wsURL = ws;
68
}
69
70
void
setOriginURL(
const
char
* ws)
71
{
72
m_wsOriginURL = ws;
73
}
74
75
void
setSocketID(
const
char
*
id
)
76
{
77
m_socketID = id;
78
}
79
80
const
char
* getSocketID()
81
{
82
return
m_socketID.c_str();
83
}
84
85
void
sendMessage(
const
char
* message);
86
87
void
emit(
const
char
* type,
bool
ack,
int
askID = 1);
88
void
emit(
const
char
* type,
const
char
* param,
const
char
* value,
bool
ack,
int
askID = 1);
89
void
emit(
const
char
* type,
const
char
* param,
const
std::string& value,
bool
ack,
int
askID = 1);
90
void
emit(
const
char
* type, std::map<std::string, std::string>& params,
bool
ack,
int
askID = 1);
91
92
bool
isConnected();
93
94
void
onConnected();
95
void
onDisconnected();
96
void
onMessage(
const
std::string& msg);
97
void
onMessageAsk(
const
std::string& msg,
int
id
);
98
99
void
updateRequest();
100
101
void
close();
102
103
std::string toStringParam(
const
char
* s);
104
std::string toStringParam(
const
std::string& s);
105
106
inline
IWebsocket
* getWebSocket()
107
{
108
return
m_ws;
109
}
110
};
111
}
112
}
Skylicht::Network::IHttpRequest
Definition
IHttpRequest.h:35
Skylicht::Network::IWebsocket
Definition
IWebsocket.h:13
Skylicht
Everything in the Skylicht Engine. You can start by looking at the topics.
Definition
AudioDebugLog.h:29
Generated by
1.17.0