迭代websockettpp服务器中的所有连接

Iterate all connections in a websocketpp server

本文关键字:连接 websockettpp 服务器 迭代      更新时间:2023-10-16

我在http://www.zaphoyd.com/websocketpp/manual/common-patterns/storing-connection-specificsession-information并且可以更新从客户端发送的一些数据。当数据发生变化时,我希望将其传播到所有连接的客户端。我想迭代所有连接,但在文档的底部指出:"注意,这个例子无法枚举所有连接。"。

我可以用上面的例子吗http://www.zaphoyd.com/websocketpp/manual/common-patterns/server-initiated-messages相反

伪码:

void on_message(connection_hdl hdl, server::message_ptr msg) {
    if (jdata["type"] == "update") {
        for (auto it : connections) {
            m_server.send(hdl, msg);
        }
    }
}

和孩子们一起看电视的时间就是优质的时间。在那里,我突然想起了websockettp:上的其他例子

private:
    typedef std::set<connection_hdl, std::owner_less<connection_hdl>> con_list;
    con_list m_connections;
void on_open(connection_hdl hdl) {
    m_connections.insert(hdl);
}
void on_close(connection_hdl hdl) {
    m_connections.erase(hdl);
}

if (jdata["type"] == "update") {
    for (auto it : m_connections) {
        msg->set_payload(table.dump());
            m_server.send(it, msg);
        }
    }
}