(cobra connection and bots) set an HTTP header when connecting to help with debugging bots

This commit is contained in:
Benjamin Sergeant 2020-09-18 15:11:12 -07:00
parent 39c84c7d51
commit d525c28907
7 changed files with 17 additions and 4 deletions

View File

@ -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

View File

@ -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();

View File

@ -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(),

View File

@ -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);
} }
// //

View File

@ -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);

View File

@ -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);

View File

@ -6,4 +6,4 @@
#pragma once #pragma once
#define IX_WEBSOCKET_VERSION "10.4.0" #define IX_WEBSOCKET_VERSION "10.4.1"