1
我正在使用WebSocket ++庫來實現WebSocket服務器。如何實現一次只提供一個客戶端的WebSocket服務器
由於我的服務器的特點,我希望它一次只能服務一個客戶端。也就是說,一旦客戶端連接到我的服務器,我希望它停止從其他潛在客戶端收聽,直到已連接的客戶端斷開連接。
目前我的服務器上的樣子:
typedef websocketpp::server<websocketpp::config::asio> server;
static void onReceiveData(server *s, websocketpp::connection_hdl hdl, server::message_ptr msg)
{
std::string payload(msg->get_payload());
// process inside payload
websocketpp::lib::error_code ec;
s->send(hdl, payload, websocketpp::frame::opcode::BINARY, ec);
}
int main(void)
{
server myServer;
myServer.init_asio();
myServer.set_message_handler(websocketpp::lib::bind(&onReceiveData, &myServer, websocketpp::lib::placeholders::_1, websocketpp::lib::placeholders::_2));
myServer.listen(9002);
myServer.start_accept();
myServer.run();
}
我應該如何暫停和恢復聽力,或者是有限制的併發客戶端數量的任何參數?
代替_stop listening_,當你處理不同的連接時,你可以拒絕額外的接受(只是不要調用它)。 –