Fix server empty thread name (#478)

This commit is contained in:
lanthora 2023-08-02 13:16:43 +08:00 committed by GitHub
parent 632ee31509
commit a7019631b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 1 deletions

View File

@ -41,6 +41,7 @@ namespace ix
, _enablePong(kDefaultEnablePong)
, _pingIntervalSecs(kDefaultPingIntervalSecs)
, _pingType(SendMessageKind::Ping)
, _autoThreadName(true)
{
_ws.setOnCloseCallback(
[this](uint16_t code, const std::string& reason, size_t wireSize, bool remote)
@ -369,8 +370,11 @@ namespace ix
}
void WebSocket::run()
{
if (_autoThreadName)
{
setThreadName(getUrl());
}
bool firstConnectionAttempt = true;
@ -627,4 +631,9 @@ namespace ix
std::lock_guard<std::mutex> lock(_configMutex);
return _subProtocols;
}
void WebSocket::setAutoThreadName(bool enabled)
{
_autoThreadName = enabled;
}
} // namespace ix

View File

@ -119,6 +119,8 @@ namespace ix
uint32_t getMinWaitBetweenReconnectionRetries() const;
const std::vector<std::string>& getSubProtocols();
void setAutoThreadName(bool enabled);
private:
WebSocketSendInfo sendMessage(const IXWebSocketSendData& message,
SendMessageKind sendMessageKind,
@ -182,6 +184,9 @@ namespace ix
// Subprotocols
std::vector<std::string> _subProtocols;
// enable or disable auto set thread name
bool _autoThreadName;
friend class WebSocketServer;
};
} // namespace ix

View File

@ -91,6 +91,9 @@ namespace ix
setThreadName("Srv:ws:" + connectionState->getId());
auto webSocket = std::make_shared<WebSocket>();
webSocket->setAutoThreadName(false);
if (_onConnectionCallback)
{
_onConnectionCallback(webSocket, connectionState);