8000 [SocketIO] allow to send any message · pascalodek/arduinoWebSockets@e2669c1 · GitHub
[go: up one dir, main page]

Skip to content

Commit e2669c1

Browse files
committed
[SocketIO] allow to send any message
1 parent 9a803e1 commit e2669c1

File tree

2 files changed

+39
-5
lines changed

2 files changed

+39
-5
lines changed

src/SocketIOclient.cpp

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,13 @@ bool SocketIOclient::isConnected(void) {
4040
/**
4141
* send text data to client
4242
* @param num uint8_t client id
43+
* @param type socketIOmessageType_t
4344
* @param payload uint8_t *
4445
* @param length size_t
45-
* @param headerToPayload bool (see sendFrame for more details)
46+
* @param headerToPayload bool (see sendFrame for more details)
4647
* @return true if ok
4748
*/
48-
bool SocketIOclient::sendEVENT(uint8_t * payload, size_t length, bool headerToPayload) {
49+
bool SocketIOclient::send(socketIOmessageType_t type, uint8_t * payload, size_t length, bool headerToPayload) {
4950
bool ret = false;
5051
if(length == 0) {
5152
length = strlen((const char *)payload);
@@ -56,7 +57,7 @@ bool SocketIOclient::sendEVENT(uint8_t * payload, size_t length, bool headerToPa
5657
ret = WebSocketsClient::sendFrameHeader(&_client, WSop_text, length + 2, true);
5758
// Engine.IO / Socket.IO Header
5859
if(ret) {
59-
uint8_t buf[3] = { eIOtype_MESSAGE, sIOtype_EVENT, 0x00 };
60+
uint8_t buf[3] = { eIOtype_MESSAGE, type, 0x00 };
6061
ret = WebSocketsClient::write(&_client, buf, 2);
6162
}
6263
if(ret && payload && length > 0) {
@@ -66,12 +67,38 @@ bool SocketIOclient::sendEVENT(uint8_t * payload, size_t length, bool headerToPa
6667
} else {
6768
// TODO implement
6869
}
69-
70-
// return WebSocketsClient::sendFrame(&_client, WSop_text, payload, length, true, true, headerToPayload);
7170
}
7271
return false;
7372
}
7473

74+
bool SocketIOclient::send(socketIOmessageType_t type, const uint8_t * payload, size_t length) {
75+
return send(type, (uint8_t *)payload, length);
76+
}
77+
78+
bool SocketIOclient::send(socketIOmessageType_t type, char * payload, size_t length, bool headerToPayload) {
79+
return send(type, (uint8_t *)payload, length, headerToPayload);
80+
}
81+
82+
bool SocketIOclient::send(socketIOmessageType_t type, const char * payload, size_t length) {
83+
return send(type, (uint8_t *)payload, length);
84+
}
85+
86+
bool SocketIOclient::send(socketIOmessageType_t type, String & payload) {
87+
return send(type, (uint8_t *)payload.c_str(), payload.length());
88+
}
89+
90+
/**
91+
* send text data to client
92+
* @param num uint8_t client id
93+
* @param payload uint8_t *
94+
* @param length size_t
95+
* @param headerToPayload bool (see sendFrame for more details)
96+
* @return true if ok
97+
*/
98+
bool SocketIOclient::sendEVENT(uint8_t * payload, size_t length, bool headerToPayload) {
99+
return send(sIOtype_EVENT, payload, length, headerToPayload);
100+
}
101+
75102
bool SocketIOclient::sendEVENT(const uint8_t * payload, size_t length) {
76103
return sendEVENT((uint8_t *)payload, length);
77104
}

src/SocketIOclient.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,13 @@ class SocketIOclient : protected WebSocketsClient {
5959
bool sendEVENT(const char * payload, size_t length = 0);
6060
bool sendEVENT(String & payload);
6161

62+
63+
bool send(socketIOmessageType_t type, uint8_t * payload, size_t length = 0, bool headerToPayload = false);
64+
bool send(socketIOmessageType_t type, const uint8_t * payload, size_t length = 0);
65+
bool send(socketIOmessageType_t type, char * payload, size_t length = 0, bool headerToPayload = false);
66+
bool send(socketIOmessageType_t type, const char * payload, size_t length = 0);
67+
bool send(socketIOmessageType_t type, String & payload);
68+
6269
void loop(void);
6370

6471
protected:

0 commit comments

Comments
 (0)
0