FIX: fixed issue that no address was set and change to that the callback is only called on a received message
This commit is contained in:
@@ -60,7 +60,7 @@ void InternalUDPListener::connect()
|
||||
receiverSocket_ = std::make_shared<zmq::socket_t>(ctx,zmq::socket_type::dish);
|
||||
|
||||
std::string portAsString = std::to_string(port_);
|
||||
receiverSocket_->bind("udp://*:"+portAsString);
|
||||
receiverSocket_->bind("udp://"+address_+":"+portAsString);
|
||||
///used to set a custom time out to the socket
|
||||
receiverSocket_->set(zmq::sockopt::rcvtimeo,100);
|
||||
}
|
||||
@@ -88,14 +88,17 @@ void InternalUDPListener::listen()
|
||||
res = receiverSocket_->recv(msg,zmq::recv_flags::none);
|
||||
// std::string message = msg.to_string();
|
||||
|
||||
if (useHandl_ == true)
|
||||
if(res.has_value())
|
||||
{
|
||||
auto i = std::async(std::launch::async, MessageHandle_, msg.to_string());
|
||||
} else if(receiverQueue_ != nullptr)
|
||||
{
|
||||
WHISPER::Message receivedMessage(msg.to_string());
|
||||
receiverQueue_->addElement(receivedMessage);
|
||||
}
|
||||
if (useHandl_ == true)
|
||||
{
|
||||
auto i = std::async(std::launch::async, MessageHandle_, msg.to_string());
|
||||
} else if(receiverQueue_ != nullptr)
|
||||
{
|
||||
WHISPER::Message receivedMessage(msg.to_string());
|
||||
receiverQueue_->addElement(receivedMessage);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
listening_ = false;
|
||||
|
||||
Reference in New Issue
Block a user