Merge pull request #43 from brtiberio/master

add possibilty to define subprotocol of websockets client
This commit is contained in:
Markus
2016-01-26 19:55:02 +01:00
3 changed files with 14 additions and 14 deletions

View File

@ -27,7 +27,7 @@
#include <Arduino.h>
//#define DEBUG_WEBSOCKETS(...) Serial1.printf( __VA_ARGS__ )
//#define DEBUG_WEBSOCKETS(...) Serial.printf( __VA_ARGS__ )
#ifndef DEBUG_WEBSOCKETS
#define DEBUG_WEBSOCKETS(...)

View File

@ -37,7 +37,7 @@ WebSocketsClient::~WebSocketsClient() {
/**
* calles to init the Websockets server
*/
void WebSocketsClient::begin(const char *host, uint16_t port, const char * url) {
void WebSocketsClient::begin(const char *host, uint16_t port, const char * url, const char * Protocol) {
_host = host;
_port = port;
_fingerprint = "";
@ -55,7 +55,7 @@ void WebSocketsClient::begin(const char *host, uint16_t port, const char * url)
_client.cIsWebsocket = true;
_client.cKey = "";
_client.cAccept = "";
_client.cProtocol = "";
_client.cProtocol = Protocol;
_client.cExtensions = "";
_client.cVersion = 0;
@ -67,19 +67,19 @@ void WebSocketsClient::begin(const char *host, uint16_t port, const char * url)
#endif
}
void WebSocketsClient::begin(String host, uint16_t port, String url) {
begin(host.c_str(), port, url.c_str());
void WebSocketsClient::begin(String host, uint16_t port, String url, String Protocol) {
begin(host.c_str(), port, url.c_str(), Protocol.c_str());
}
#if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
void WebSocketsClient::beginSSL(const char *host, uint16_t port, const char * url, const char * fingerprint) {
begin(host, port, url);
void WebSocketsClient::beginSSL(const char *host, uint16_t port, const char * url, const char * fingerprint, const char * Protocol) {
begin(host, port, url, Protocol);
_client.isSSL = true;
_fingerprint = fingerprint;
}
void WebSocketsClient::beginSSL(String host, uint16_t port, String url, String fingerprint) {
beginSSL(host.c_str(), port, url.c_str(), fingerprint.c_str());
void WebSocketsClient::beginSSL(String host, uint16_t port, String url, String fingerprint, String Protocol) {
beginSSL(host.c_str(), port, url.c_str(), fingerprint.c_str(), Protocol.c_str());
}
#endif
@ -366,7 +366,7 @@ void WebSocketsClient::sendHeader(WSclient_t * client) {
"Connection: Upgrade\r\n"
"User-Agent: arduino-WebSocket-Client\r\n"
"Sec-WebSocket-Version: 13\r\n"
"Sec-WebSocket-Protocol: arduino\r\n"
"Sec-WebSocket-Protocol:" + client->cProtocol +"\r\n"
"Sec-WebSocket-Key: " + client->cKey + "\r\n";
if(client->cExtensions.length() > 0) {

View File

@ -36,12 +36,12 @@ class WebSocketsClient: private WebSockets {
WebSocketsClient(void);
~WebSocketsClient(void);
void begin(const char *host, uint16_t port, const char * url = "/");
void begin(String host, uint16_t port, String url = "/");
void begin(const char *host, uint16_t port, const char * url = "/", const char * Protocol = "arduino");
void begin(String host, uint16_t port, String url = "/", String Protocol = "arduino");
#if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
void beginSSL(const char *host, uint16_t port, const char * url = "/", const char * = "");
void beginSSL(String host, uint16_t port, String url = "/", String fingerprint = "");
void beginSSL(const char *host, uint16_t port, const char * url = "/", const char * = "", const char * Protocol = "arduino");
void beginSSL(String host, uint16_t port, String url = "/", String fingerprint = "", String Protocol = "arduino");
#endif
void loop(void);