add an option to easily disable per message deflate compression
This commit is contained in:
@ -143,7 +143,7 @@ namespace ix
|
||||
// "b"
|
||||
// ],
|
||||
// ]
|
||||
//
|
||||
//
|
||||
Json::Value tags;
|
||||
|
||||
Json::Value gameTag;
|
||||
|
@ -6,10 +6,10 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <algorithm>
|
||||
#include <ixwebsocket/IXHttpClient.h>
|
||||
#include <jsoncpp/json/json.h>
|
||||
#include <regex>
|
||||
#include <algorithm>
|
||||
|
||||
namespace ix
|
||||
{
|
||||
|
@ -80,6 +80,7 @@ int main(int argc, char** argv)
|
||||
bool strict = false;
|
||||
bool stress = false;
|
||||
bool disableAutomaticReconnection = false;
|
||||
bool disablePerMessageDeflate = false;
|
||||
int port = 8008;
|
||||
int redisPort = 6379;
|
||||
int statsdPort = 8125;
|
||||
@ -110,6 +111,7 @@ int main(int argc, char** argv)
|
||||
CLI::App* connectApp = app.add_subcommand("connect", "Connect to a remote server");
|
||||
connectApp->add_option("url", url, "Connection url")->required();
|
||||
connectApp->add_flag("-d", disableAutomaticReconnection, "Disable Automatic Reconnection");
|
||||
connectApp->add_flag("-x", disablePerMessageDeflate, "Disable per message deflate");
|
||||
|
||||
CLI::App* chatApp = app.add_subcommand("chat", "Group chat");
|
||||
chatApp->add_option("url", url, "Connection url")->required();
|
||||
@ -241,7 +243,8 @@ int main(int argc, char** argv)
|
||||
}
|
||||
else if (app.got_subcommand("connect"))
|
||||
{
|
||||
ret = ix::ws_connect_main(url, disableAutomaticReconnection);
|
||||
ret = ix::ws_connect_main(url, disableAutomaticReconnection,
|
||||
disablePerMessageDeflate);
|
||||
}
|
||||
else if (app.got_subcommand("chat"))
|
||||
{
|
||||
|
4
ws/ws.h
4
ws/ws.h
@ -30,7 +30,9 @@ namespace ix
|
||||
|
||||
int ws_chat_main(const std::string& url, const std::string& user);
|
||||
|
||||
int ws_connect_main(const std::string& url, bool disableAutomaticReconnection);
|
||||
int ws_connect_main(const std::string& url,
|
||||
bool disableAutomaticReconnection,
|
||||
bool disablePerMessageDeflate);
|
||||
|
||||
int ws_receive_main(const std::string& url, bool enablePerMessageDeflate, int delayMs);
|
||||
|
||||
|
@ -15,7 +15,8 @@ namespace ix
|
||||
{
|
||||
public:
|
||||
WebSocketConnect(const std::string& _url,
|
||||
bool disableAutomaticReconnection);
|
||||
bool disableAutomaticReconnection,
|
||||
bool disablePerMessageDeflate);
|
||||
|
||||
void subscribe(const std::string& channel);
|
||||
void start();
|
||||
@ -26,13 +27,16 @@ namespace ix
|
||||
private:
|
||||
std::string _url;
|
||||
ix::WebSocket _webSocket;
|
||||
bool _disablePerMessageDeflate;
|
||||
|
||||
void log(const std::string& msg);
|
||||
};
|
||||
|
||||
WebSocketConnect::WebSocketConnect(const std::string& url,
|
||||
bool disableAutomaticReconnection) :
|
||||
_url(url)
|
||||
bool disableAutomaticReconnection,
|
||||
bool disablePerMessageDeflate) :
|
||||
_url(url),
|
||||
_disablePerMessageDeflate(disablePerMessageDeflate)
|
||||
{
|
||||
if (disableAutomaticReconnection)
|
||||
{
|
||||
@ -54,9 +58,16 @@ namespace ix
|
||||
{
|
||||
_webSocket.setUrl(_url);
|
||||
|
||||
ix::WebSocketPerMessageDeflateOptions webSocketPerMessageDeflateOptions(
|
||||
true, false, false, 15, 15);
|
||||
_webSocket.setPerMessageDeflateOptions(webSocketPerMessageDeflateOptions);
|
||||
if (_disablePerMessageDeflate)
|
||||
{
|
||||
_webSocket.disablePerMessageDeflate();
|
||||
}
|
||||
else
|
||||
{
|
||||
ix::WebSocketPerMessageDeflateOptions webSocketPerMessageDeflateOptions(
|
||||
true, false, false, 15, 15);
|
||||
_webSocket.setPerMessageDeflateOptions(webSocketPerMessageDeflateOptions);
|
||||
}
|
||||
|
||||
std::stringstream ss;
|
||||
log(std::string("Connecting to url: ") + _url);
|
||||
@ -130,10 +141,14 @@ namespace ix
|
||||
_webSocket.send(text);
|
||||
}
|
||||
|
||||
int ws_connect_main(const std::string& url, bool disableAutomaticReconnection)
|
||||
int ws_connect_main(const std::string& url,
|
||||
bool disableAutomaticReconnection,
|
||||
bool disablePerMessageDeflate)
|
||||
{
|
||||
std::cout << "Type Ctrl-D to exit prompt..." << std::endl;
|
||||
WebSocketConnect webSocketChat(url, disableAutomaticReconnection);
|
||||
WebSocketConnect webSocketChat(url,
|
||||
disableAutomaticReconnection,
|
||||
disablePerMessageDeflate);
|
||||
webSocketChat.start();
|
||||
|
||||
while (true)
|
||||
|
Reference in New Issue
Block a user