(cobra connection and bots) set an HTTP header when connecting to help with debugging bots
This commit is contained in:
		@@ -2,6 +2,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
All changes to this project will be documented in this file.
 | 
					All changes to this project will be documented in this file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [10.4.1] - 2020-09-18
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(cobra connection and bots) set an HTTP header when connecting to help with debugging bots
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## [10.4.0] - 2020-09-12
 | 
					## [10.4.0] - 2020-09-12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(http server) read body request when the Content-Length is specified + set timeout to read the request to 30 seconds max by default, and make it configurable as a constructor parameter
 | 
					(http server) read body request when the Content-Length is specified + set timeout to read the request to 30 seconds max by default, and make it configurable as a constructor parameter
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,6 +31,8 @@ namespace ix
 | 
				
			|||||||
        auto limitReceivedEvents = botConfig.limitReceivedEvents;
 | 
					        auto limitReceivedEvents = botConfig.limitReceivedEvents;
 | 
				
			||||||
        auto batchSize = botConfig.batchSize;
 | 
					        auto batchSize = botConfig.batchSize;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        config.headers["X-Cobra-Channel"] = channel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ix::CobraConnection conn;
 | 
					        ix::CobraConnection conn;
 | 
				
			||||||
        conn.configure(config);
 | 
					        conn.configure(config);
 | 
				
			||||||
        conn.connect();
 | 
					        conn.connect();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <ixwebsocket/IXSocketTLSOptions.h>
 | 
					#include <ixwebsocket/IXSocketTLSOptions.h>
 | 
				
			||||||
#include <ixwebsocket/IXWebSocketPerMessageDeflateOptions.h>
 | 
					#include <ixwebsocket/IXWebSocketPerMessageDeflateOptions.h>
 | 
				
			||||||
 | 
					#include <ixwebsocket/IXWebSocketHttpHeaders.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace ix
 | 
					namespace ix
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -19,6 +20,7 @@ namespace ix
 | 
				
			|||||||
        std::string rolesecret;
 | 
					        std::string rolesecret;
 | 
				
			||||||
        WebSocketPerMessageDeflateOptions webSocketPerMessageDeflateOptions;
 | 
					        WebSocketPerMessageDeflateOptions webSocketPerMessageDeflateOptions;
 | 
				
			||||||
        SocketTLSOptions socketTLSOptions;
 | 
					        SocketTLSOptions socketTLSOptions;
 | 
				
			||||||
 | 
					        WebSocketHttpHeaders headers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        CobraConfig(const std::string& a = std::string(),
 | 
					        CobraConfig(const std::string& a = std::string(),
 | 
				
			||||||
                    const std::string& e = std::string(),
 | 
					                    const std::string& e = std::string(),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -255,7 +255,8 @@ namespace ix
 | 
				
			|||||||
        const std::string& rolename,
 | 
					        const std::string& rolename,
 | 
				
			||||||
        const std::string& rolesecret,
 | 
					        const std::string& rolesecret,
 | 
				
			||||||
        const WebSocketPerMessageDeflateOptions& webSocketPerMessageDeflateOptions,
 | 
					        const WebSocketPerMessageDeflateOptions& webSocketPerMessageDeflateOptions,
 | 
				
			||||||
        const SocketTLSOptions& socketTLSOptions)
 | 
					        const SocketTLSOptions& socketTLSOptions,
 | 
				
			||||||
 | 
					        const WebSocketHttpHeaders& headers)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        _roleName = rolename;
 | 
					        _roleName = rolename;
 | 
				
			||||||
        _roleSecret = rolesecret;
 | 
					        _roleSecret = rolesecret;
 | 
				
			||||||
@@ -269,6 +270,7 @@ namespace ix
 | 
				
			|||||||
        _webSocket->setUrl(url);
 | 
					        _webSocket->setUrl(url);
 | 
				
			||||||
        _webSocket->setPerMessageDeflateOptions(webSocketPerMessageDeflateOptions);
 | 
					        _webSocket->setPerMessageDeflateOptions(webSocketPerMessageDeflateOptions);
 | 
				
			||||||
        _webSocket->setTLSOptions(socketTLSOptions);
 | 
					        _webSocket->setTLSOptions(socketTLSOptions);
 | 
				
			||||||
 | 
					        _webSocket->setExtraHeaders(headers);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Send a websocket ping every N seconds (N = 30) now
 | 
					        // Send a websocket ping every N seconds (N = 30) now
 | 
				
			||||||
        // This should keep the connection open and prevent some load balancers such as
 | 
					        // This should keep the connection open and prevent some load balancers such as
 | 
				
			||||||
@@ -283,7 +285,8 @@ namespace ix
 | 
				
			|||||||
                  config.rolename,
 | 
					                  config.rolename,
 | 
				
			||||||
                  config.rolesecret,
 | 
					                  config.rolesecret,
 | 
				
			||||||
                  config.webSocketPerMessageDeflateOptions,
 | 
					                  config.webSocketPerMessageDeflateOptions,
 | 
				
			||||||
                  config.socketTLSOptions);
 | 
					                  config.socketTLSOptions,
 | 
				
			||||||
 | 
					                  config.headers);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //
 | 
					    //
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -56,7 +56,8 @@ namespace ix
 | 
				
			|||||||
                       const std::string& rolename,
 | 
					                       const std::string& rolename,
 | 
				
			||||||
                       const std::string& rolesecret,
 | 
					                       const std::string& rolesecret,
 | 
				
			||||||
                       const WebSocketPerMessageDeflateOptions& webSocketPerMessageDeflateOptions,
 | 
					                       const WebSocketPerMessageDeflateOptions& webSocketPerMessageDeflateOptions,
 | 
				
			||||||
                       const SocketTLSOptions& socketTLSOptions);
 | 
					                       const SocketTLSOptions& socketTLSOptions,
 | 
				
			||||||
 | 
					                       const WebSocketHttpHeaders& headers);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        void configure(const ix::CobraConfig& config);
 | 
					        void configure(const ix::CobraConfig& config);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -54,6 +54,7 @@ namespace ix
 | 
				
			|||||||
        std::lock_guard<std::mutex> lock(_configMutex);
 | 
					        std::lock_guard<std::mutex> lock(_configMutex);
 | 
				
			||||||
        _url = url;
 | 
					        _url = url;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void WebSocket::setExtraHeaders(const WebSocketHttpHeaders& headers)
 | 
					    void WebSocket::setExtraHeaders(const WebSocketHttpHeaders& headers)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        std::lock_guard<std::mutex> lock(_configMutex);
 | 
					        std::lock_guard<std::mutex> lock(_configMutex);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,4 +6,4 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define IX_WEBSOCKET_VERSION "10.4.0"
 | 
					#define IX_WEBSOCKET_VERSION "10.4.1"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user