问题标签 [beast-websockets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4461 浏览

c++ - Boost-beast websocket 握手问题

我正在尝试与远程服务器建立 websocket 连接并收到以下错误:WebSocket 握手被远程对等方拒绝

我正在关注这个例子:https ://www.boost.org/doc/libs/1_70_0/libs/beast/example/websocket/client/sync/websocket_client_sync.cpp

对于以下服务器:https ://api.hitbtc.com/#socket-api-reference

提前感谢您的帮助!

0 投票
1 回答
407 浏览

boost-asio - Boost Async Websocket 服务器问题

我已经通过 boost.beast 编写了一个异步 websocket。但是当我尝试运行它时,我无法连接它。

服务器代码如下。当我尝试连接我的 websocket 服务器时,我的 chrome 显示连接状态。当我通过 VS2017 进行调试时,它永远不会遇到 run() 中的 lambda 表达式。

当我尝试在 Chrome 的控制台上连接它时。连接需要很长时间,然后显示失败。


所以我改回来,作为 boost.It 的例子。

我有两个问题:

1.为什么我使用 lambda,它会 SOF ,但示例不会。2.当我使用while()时,它不起作用,为什么?lambda 表达式和 std::bind() 之间有什么不同吗?


那么另一个问题,下面的两个代码块有什么不同?

当我使用最上面的那个时,它返回 error_code 995。

0 投票
2 回答
226 浏览

websocket - 如何使用 boost weboscket 设置子协议

我想将子协议与 boost websocket 一起使用。

比如我有一个websocket服务器地址,ws://127.0.0.1:5005。现在我想用 ws://127.0.0.1:5005/order 替换它。“order”是websocket中的子协议,可以在libwebsocket中使用。我没有找到关于带有 boost 的子协议的资源。

0 投票
1 回答
746 浏览

c++11 - 如何使用 boost::aio::async_connect 和 lambda

我想了解如何将 boost::aio::async_connect 与 lambda 一起使用。提升版本 1.68

我可以使用 std::bind 但不能使用 lambda,这真的很奇怪。如果我使用 std::bind,它可以工作。但是当我使用 lambda 时,它构建失败,并说“未满足 IteratorConnectHandler 类型要求。

std::bind 版本(有效)

lambda 版本(不工作)

那么如何在这里使用 lambda 呢?

0 投票
1 回答
407 浏览

javascript - How to resolve could not decode a text frame as UTF 8 though boost websocket

I write a websocket though boost, and I receive the message though the client in chrome. When I use ws, it works well, I can receive correct msg. but when I use wss, it works bad, and said could not decode a text frame as UTF 8.

the picture is what's wrong is ssl mode. wrong msg in ssl mode

c++ send msg code

js code

Where does this odd character come from? What is the problem? How to fix this ?

0 投票
0 回答
100 浏览

boost-beast - 如何使用boost websocket实现子协议

我想实现一个 websocket 子协议。例如,我有一个 ws://localhost:1234 的 weboscket 服务器,现在我需要一个 ws://localhost:1234/sub 的子协议。

我知道 lib-websockets 提供了这个功能,但是我在 boost websocket 中没有找到它。

有什么办法可以做到这一点?

0 投票
0 回答
211 浏览

c++ - 使用 Boost Beast 实现发布/订阅

我有一个基于 Boost Beast 的 Websocket 服务器,我想实现一个发布/订阅模式。我当前的代码库基于 advanced/flex 示例。

是否有关于如何使用 Beast 实现发布/订阅频道的配方/模式?

具体来说,我想知道查找会话并发送由服务器发起的数据的正确方法是什么(例如,服务器生成事件数据并希望将此数据发布给订阅者)。

0 投票
1 回答
502 浏览

c++ - 提高 websocket 和 io_context 的可重用性以重新建立连接

我已经websocket使用boost::beast::websocketand boost::asio::io_contextin编写了一个小客户端C++。我有一个具有以下状态的状态机:

如果代码无法建立连接或建立连接后失败(可能的原因:Internet 已关闭,Service 已关闭,Server 发送关闭帧),则状态机将进入CLEANUP状态并应进行清理。

我不确定我是否可以重复使用相同的io_contextwebsocket::stream. 目前,我的 io_context 只在这个单线程中使用。我打算使用pointerswebsockets 和 io_context 并在 CLEANUP 中删除它们并在 GDR_PROVISING 中再次分配它们。

我可以使用相同的 websocket 和 io_context 实例来重新建立与服务器的连接吗?可能我需要调用一些成员函数,比如stopor reset

READY现在的样子是这样的:

0 投票
2 回答
230 浏览

javascript - 在已知端口上获取 Websocket 的 IP

我在 C++ 中构建了一个 websocket(使用 boost::beast)。如果需要,它将使用 JSON 字符串为网站(客户端)提供服务。在设计我的设置时,我犯了一个灾难性的错误:我忘记了客户端 Web 浏览器(运行在与服务器不同的设备上)不会知道服务器的 IP 地址。它将知道服务器正在侦听的端口。

我应该指定:(服务器和客户端)都在本地网络中运行。

所以我有两个笨拙的想法来解决这个问题。我很高兴听到你的意见——我相信会有更优雅的方法来解决我的问题。

  1. 向网络发送某种广播消息“非常特定的字符串”。我的服务器将知道它已被查找,并将以其 IP 响应,以便可以建立连接。 这篇文章似乎表明这种方法是不可能的。

  2. 让用户输入运行服务器的设备的(已知)IP 地址。我真的很想避免这种最后的解决方案。

不幸的是,我无法在托管 websocket 服务器的设备上运行 node.js。

0 投票
1 回答
103 浏览

boost - 使用 Boost.Beast WebSocket 时测量客户端备份

我正在阅读 Boost.Beast WebSocket。当我的应用程序得到备份时,websocket 发送者似乎很乐意延迟/缓冲它们的数据(大概在应用程序级别,因为它们会延迟 1 分钟或更长时间)。

衡量我是否得到备份的最佳方法是什么?例如,我可以查看 TCP 缓冲区的大小吗?我还可以在快速线程中将所有数据读入内存,并将其放入慢速线程的队列中(在这种情况下,备份可以通过队列的大小来衡量)。但我想知道是否有更直接的方法。