ipkn / crow

Crow is very fast and easy to use C++ micro web framework (inspired by Python Flask)
BSD 3-Clause "New" or "Revised" License
7.43k stars 889 forks source link

How to use websocket to send messages actively? #413

Open xwq112132 opened 1 year ago

xwq112132 commented 1 year ago

I learned example_ws.cpp is an example. In this example, a server is built using the websocket protocol, and then listens for three types of messages: onopen, onclose, and onmessage. But like http1.1, this is also half-duplex. After the client connects with me, how can I actively send messages to the client as a server?

And the second half of the code of example_ws.cpp makes me wonder that commenting them does not affect websocket to listen to the above three types of messages. Can someone help me explain the role of the second half of the code?

This is the second half of the code of example_ws.cpp that puzzles me:

    CROW_ROUTE(app, "/")
    ([]{
        char name[256];
        gethostname(name, 256);
        crow::mustache::context x;
        x["servername"] = name;

        auto page = crow::mustache::load("ws.html");
        return page.render(x);
     });
xwq112132 commented 1 year ago

@thedrow @vadz @kumagi @xenosoz