一本关于 Boost Beast 的书?

问题描述 投票:0回答:1

这个问题会比较抽象,但是

我曾经得到一份大学作业,要使用我最了解的编程语言(不幸的是 C++ :))实现一个玩具分布式系统。所以我基本上需要创建一些双向消息交换系统。

在选择工具时,boost beast 及其 websockets 似乎是一个不错的初始选择。但是我对一般的网络、asio 及其理念知之甚少,我陷入了困境。最后,我重新发明了轮子并仅使用 asio 创建了一个自定义协议,因为我无法找到足够简单的参考来立即开始使用 beast(与 ASIO 相反,它似乎没有那么陡峭的学习曲线,更大的社区,足够的材料和书籍供初学者阅读)。

所以我的问题是:是否有足够完整的参考资料供初学者阅读有关 websockets 和 boost beast 的信息?老实说,我很好奇人们是如何学习 beast 的(除了从示例/教程中学习和阅读图书馆的资源)。

我曾尝试阅读文档,但感觉它是为更有经验的人编写的(而且 beast 的文档感觉比 ASIO 的更专业)。我也看过一些Vinnie Falco的演讲,但显然不能面面俱到

感谢您的宝贵时间,期待任何回复

boost boost-asio boost-beast boost-beast-websocket
1个回答
0
投票

我从文档中学到了

它在某些地方非常出色,甚至比当时的 Asio 更好地记录 Asio 原则。不过,在过去 2 年中,Asio“概述”部分进行了一些非常好的升级,所以今天可能已经变得更加平衡。¹

此外,我一直在……在 StackOverflow 上回答问题。学习来龙去脉非常有效,特别是在事情变得复杂或边缘粗糙的领域。

书?

我已经抽取了几本书处理Boost库。一些专门关于使用 Asio 的网络编程。然而,所有这些

  • 似乎早于 Beast(虽然我很确定它在其中一些出版时已经存在,所以作者可能只是还不熟悉它?),
  • 质量差到非常差。有时我可以通过 StackOverflow 上问题的独特痕迹来判断哪本书的代码是从哪本书中提取的,这是我只在特定书籍中看到的独特的错误代码气味²
  • 可悲的是,所有这些都严重过时了。这主要归结为
    • Asio 进行了一些大修(实际上是几次)
    • 一些(竞争性)标准提案
    • C++20 stackless协程的到来 我个人认为它们的结合导致了编写典型 Asio 代码的“最佳实践方式”的突破性变化

看到 Beast 100% 遵循 Asio - 甚至可能被认为是应用 Asio 库的主要示例 - 所有这些都适用于 Beast。

据我所知(我正在密切关注)Asio/Beast 中的文档和示例代码精心 更新以跟上时代的步伐。

书籍永远无法提供这种级别的保真度和更新。作为所有版本的 “C# In Depth” 和其他几本书的骄傲拥有者,我这样说:我更喜欢生活资源,最好是收到社区贡献和请求的资源。

这将我们带到:

索取文件

如果您发现某个区域缺少文档,或者值得更好的对待,请给库维护者留言:https://github.com/boostorg/beast

当然,拉取请求是一种很棒的贡献方式。如果您觉得这可能令人生畏,或者只想先讨论想法,请考虑在 #cppslack 聊天。


¹ 主观上,Asio 示例的质量和解释水平在过去 2 年左右的时间里飞速上升。我承认这 may 部分是基于我忽略了之前未在文档中列出的示例的看法?

² 参见例如崩溃:在抛出“std::system_error”实例后调用终止 what():避免了资源死锁

© www.soinside.com 2019 - 2024. All rights reserved.