2015-11-07 30 views
0

我修改了「擴展連接存儲」示例http://www.zaphoyd.com/websocketpp/manual/common-patterns/storing-connection-specificsession-information,並可以更新從客戶端發送的某些數據。當數據發生變化時,我想將其傳播給所有連接的客戶端。我想迭代所有的連接,但在文檔底部說明'注意,這個例子沒有能力枚舉所有連接。'。迭代websocketpp服務器中的所有連接

我應該用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); 
     } 
    } 
} 

回答

0

時間過看電視與孩子們的美好時光。在那裏我突然想起websocketpp上的其他例子:

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); 
     } 
    } 
}