这个问题会比较抽象,但是
我曾经得到一份大学作业,要使用我最了解的编程语言(不幸的是 C++ :))实现一个玩具分布式系统。所以我基本上需要创建一些双向消息交换系统。
在选择工具时,boost beast 及其 websockets 似乎是一个不错的初始选择。但是我对一般的网络、asio 及其理念知之甚少,我陷入了困境。最后,我重新发明了轮子并仅使用 asio 创建了一个自定义协议,因为我无法找到足够简单的参考来立即开始使用 beast(与 ASIO 相反,它似乎没有那么陡峭的学习曲线,更大的社区,足够的材料和书籍供初学者阅读)。
所以我的问题是:是否有足够完整的参考资料供初学者阅读有关 websockets 和 boost beast 的信息?老实说,我很好奇人们是如何学习 beast 的(除了从示例/教程中学习和阅读图书馆的资源)。
我曾尝试阅读文档,但感觉它是为更有经验的人编写的(而且 beast 的文档感觉比 ASIO 的更专业)。我也看过一些Vinnie Falco的演讲,但显然不能面面俱到
感谢您的宝贵时间,期待任何回复
我从文档中学到了
它在某些地方非常出色,甚至比当时的 Asio 更好地记录 Asio 原则。不过,在过去 2 年中,Asio“概述”部分进行了一些非常好的升级,所以今天可能已经变得更加平衡。¹
此外,我一直在……在 StackOverflow 上回答问题。学习来龙去脉非常有效,特别是在事情变得复杂或边缘粗糙的领域。
我已经抽取了几本书处理Boost库。一些专门关于使用 Asio 的网络编程。然而,所有这些
看到 Beast 100% 遵循 Asio - 甚至可能被认为是应用 Asio 库的主要示例 - 所有这些都适用于 Beast。
据我所知(我正在密切关注)Asio/Beast 中的文档和示例代码精心 更新以跟上时代的步伐。
书籍永远无法提供这种级别的保真度和更新。作为所有版本的 “C# In Depth” 和其他几本书的骄傲拥有者,我这样说:我更喜欢生活资源,最好是收到社区贡献和请求的资源。
这将我们带到:
如果您发现某个区域缺少文档,或者值得更好的对待,请给库维护者留言:https://github.com/boostorg/beast
当然,拉取请求是一种很棒的贡献方式。如果您觉得这可能令人生畏,或者只想先讨论想法,请考虑在 #cppslack 聊天。
¹ 主观上,Asio 示例的质量和解释水平在过去 2 年左右的时间里飞速上升。我承认这 may 部分是基于我忽略了之前未在文档中列出的示例的看法?