bool PusherClient::connect() { String stringVar0; String path; String host; String key; getStringTableItem(0, stringVar0); getStringTableItem(3, path); getStringTableItem(4, host); getPusherInfoItem(1, key); path.replace(stringVar0, key); if (!_client.connect(host, path, 80)) { LogPrintLn(logMessageTablePusherClient, 0); return false; } #if (ENABLE_AUTH == 1) while(_socketid.length() == 0) { delay(100); monitor(); } #endif LogPrintLn(logMessageTablePusherClient, 1); return true; }
void PusherClient::unsubscribe(String channel) { String unsubscribeEventName = getStringTableItem(12); String stringVar0 = getStringTableItem(0); String message = getStringTableItem(9); message.replace(stringVar0, channel); triggerEvent(unsubscribeEventName, message); }
void PusherClient::subscribePrivate(const String& channel) { String message; getStringTableItem(7, message); { String stringVar; { String auth; getStringTableItem(1, stringVar); getAuthString(channel, auth); message.replace(stringVar, auth); LogPrintLn(message); } getStringTableItem(0, stringVar); message.replace(stringVar, channel); LogPrintLn(message); } String subscribeEventName; getStringTableItem(5, subscribeEventName); triggerEvent(subscribeEventName, message); }
void PusherClient::subscribe(String channel, String auth) { String subscribeEventName = getStringTableItem(5); String stringVar0 = getStringTableItem(0); String stringVar1 = getStringTableItem(1); String message = getStringTableItem(7); message.replace(stringVar0, channel); message.replace(stringVar1, auth); triggerEvent(subscribeEventName, message); }
void PusherClient::triggerEvent(String eventName, String eventData) { String eventString = getStringTableItem(0); String dataString = getStringTableItem(1); String message = getStringTableItem(10); message.replace(eventString, eventName); message.replace(dataString, eventData); _client.send(message); }
void PusherClient::triggerEvent(String eventName, String eventData) { String stringVar0 = getStringTableItem(0); String stringVar1 = getStringTableItem(1); String message = getStringTableItem(10); message.replace(stringVar0, eventName); message.replace(stringVar1, eventData); _client.send(message); }
bool PusherClient::connect(String appId) { String stringVar0 = getStringTableItem(0); String path = getStringTableItem(3); path.replace(stringVar0, appId); char pathData[path.length() + 1]; path.toCharArray(pathData, path.length() + 1); return _client.connect("ws.pusherapp.com", pathData, 80); }
void WebSocketClient::sendHandshake(char hostname[], char path[]) { String stringVar = getStringTableItem(0); String line1 = getStringTableItem(1); String line2 = getStringTableItem(2); String line3 = getStringTableItem(3); String line4 = getStringTableItem(4); String line5 = getStringTableItem(5); String line6 = getStringTableItem(6); String line7 = getStringTableItem(7); String line8 = getStringTableItem(8); line1.replace(stringVar, path); line4.replace(stringVar, hostname); Serial.println(line1+"\n"+line2+"\n"+line3+"\n"+line4+"\n"+line5+"\n"+line6+"\n" + line7 + "\n" + line8 + "\n"); _client.println(line1); _client.println(line2); _client.println(line3); _client.println(line4); _client.println(line5); _client.println(line6); _client.println(line7); //_client.println(line8); _client.println(); }
void PusherClient::triggerEvent(String eventName, String eventData, String channel) { String stringVar0 = getStringTableItem(0); String stringVar1 = getStringTableItem(1); String stringVar2 = getStringTableItem(2); String message = getStringTableItem(14); message.replace(stringVar0, eventName); message.replace(stringVar1, eventData); message.replace(stringVar2, channel); Serial.println(message); _client.send(message); }
void PusherClient::unsubscribe(const String& channel) { String unsubscribeEventName; String stringVar0; String message; getStringTableItem(12, unsubscribeEventName); getStringTableItem(0, stringVar0); getStringTableItem(9, message); message.replace(stringVar0, channel); triggerEvent(unsubscribeEventName, message); }
bool WebSocketClient::readHandshake() { bool result = false; char character; String handshake = "", line; int maxAttempts = 300, attempts = 0; while(_client.available() == 0 && attempts < maxAttempts) { delay(100); attempts++; } while((line = readLine()) != "") { handshake += line + '\n'; } Serial.println(handshake); String response = getStringTableItem(9); result = handshake.indexOf(response) != -1; if(!result) { _client.stop(); } return result; }
void PusherClient::getAuthString(const String& channel, String& auth) { Sha256Class sha256; //Sha init with secret key { String secret; getPusherInfoItem(2, secret); sha256.initHmac((uint8_t*)&secret[0], secret.length()); } //Set the data to encrypt { String text; text.reserve(_socketid.length() + 1 + channel.length()); text = _socketid; text += ':'; text += channel; sha256.print(text); } uint8_t* result = sha256.resultHmac(); String hexChars; getStringTableItem(19, hexChars); auth.reserve(21 /*key*/ + 1 + 64 /*sha256*/); getPusherInfoItem(1, auth); //key auth += ':'; for (int i=0; i<32; i++) { auth += hexChars.charAt(result[i]>>4); auth += hexChars.charAt(result[i]&0xf); } }
void PusherClient::dataArrived(WebSocketClient client, String data) { Serial.println(data); String eventNameStart = getStringTableItem(11); String eventName = parseMessageMember(eventNameStart, data); if (_bindAllDelegate != NULL) { _bindAllDelegate(data); } EventDelegate delegate = _bindMap[eventName]; Serial.println(eventName); if (delegate != NULL) { String dataStart = getStringTableItem(13); String payload = parseMessageMember(dataStart, data); delegate(payload); } }
PusherClient::PusherClient() { String eventName; getStringTableItem(17, eventName); bind(eventName, connectionEstablished); _client.setDataArrivedDelegate(dataArrived); lastPingTime = millis(); }
void PusherClient::triggerEvent(const String& eventName, const String& eventData) { String stringVar; String message; getStringTableItem(10, message); getStringTableItem(0, stringVar); message.replace(stringVar, eventName); getStringTableItem(1, stringVar); message.replace(stringVar, eventData); _client.send(message); LogPrint(logMessageTablePusherClient, 5); LogPrintLn(eventName); }
void PusherClient::subscribe(const String& channel) { if (!_client.connected()) return; String subscribeEventName; String stringVar0; String message; getStringTableItem(5, subscribeEventName); getStringTableItem(0, stringVar0); getStringTableItem(6, message); message.replace(stringVar0, channel); triggerEvent(subscribeEventName, message); LogPrint(logMessageTablePusherClient, 3); LogPrintLn(channel); }
void PusherClient::dataArrived(const String& message) { String paramName; String eventName; String eventData; getStringTableItem(11, paramName); parseMessageMember(message, paramName, eventName); getStringTableItem(13, paramName); parseMessageMember(message, paramName, eventData); if (_bindAllDelegate != NULL) { _bindAllDelegate(eventName, eventData); } EventDelegate delegate = _bindMap[eventName]; if (delegate != NULL) { delegate(eventName, eventData); } }
void PusherClient::triggerPrivateEvent(const String& channelName, const String& eventName, const String& eventData) { String stringVar0; String stringVar1; String stringVar2; String message; getStringTableItem(0, stringVar0); getStringTableItem(1, stringVar1); getStringTableItem(2, stringVar2); getStringTableItem(14, message); message.replace(stringVar0, eventName); message.replace(stringVar1, eventData); message.replace(stringVar2, channelName); _client.send(message); LogPrint(logMessageTablePusherClient, 5); LogPrintLn(eventName); }
void PusherClient::dataArrived(WebSocketClient client, String data) { String eventNameStart = getStringTableItem(11); String eventName = parseMessageMember(eventNameStart, data); if (_bindAllDelegate != NULL) { _bindAllDelegate(data); } EventDelegate delegate = _bindMap[eventName]; if (delegate != NULL) { delegate(data); } }
void WebSocketClient::sendHandshake(char hostname[], char path[]) { String stringVar = getStringTableItem(0); String line1 = getStringTableItem(1); String line2 = getStringTableItem(2); String line3 = getStringTableItem(3); String line4 = getStringTableItem(4); String line5 = getStringTableItem(5); line1.replace(stringVar, path); line4.replace(stringVar, hostname); _client.println(line1); _client.println(line2); _client.println(line3); _client.println(line4); _client.println(line5); _client.println(); }
void PusherClient::KeepConnectionAlive() { String pingEvent; getStringTableItem(15, pingEvent); _client.send(pingEvent); }
void PusherClient::acquireSocketId(const String& eventData) { String socketIdName; getStringTableItem(18, socketIdName); parseMessageMember(eventData, socketIdName, _socketid); }