beast: websocket server crashes

Thanks for your great help so far. I have added the websocket part to my server (not the one on github, the server is kind a commercial software, not really comfortable to put it on github ). During test, it crashes quite often. When the server crashes, the output is as below:

server: /usr/include/beast/websocket/detail/invokable.hpp:138: void beast::websocket::detail::invokable::emplace(F&&) [with F = beast::websocket::streamboost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp > >::write_frame_op >, beast::websocket::streamboost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp > >::write_op, boost::bi::list2boost::_bi::value<std::shared_ptr<websocket::applications::chat::session >, boost::arg<1> (*)()> >, boost::asio::detail::is_continuation_if_running> > >]: Assertion `! base’ failed.

My server has two clients connect to it: one is a websocket client (I call it control), another one is normal socket client (I call it agent).

I uses “control” client to control the “agent” (when I say control, I meant I type some command on the “control”, it sends to server, server sends to “agent”). Then “agent” performs the required functions and sends result back.

During test, if I send same command from “control” to “agent”, it works sometimes but crashes another time.

I also have a normal socket client to control the “agent”. It worked fine. I want to replace the normal client with websocket client.

Can you please give me some hints on where should I look into it?

If code is required, can I send to you via email?

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 35 (15 by maintainers)

Commits related to this issue

Most upvoted comments

Thanks for the explanation. It makes total sense now.