我在做什么
如标题所示,我正在恒星板上实现 websocket 服务器。目前我能够建立与客户端的连接并发送几帧。
我实现 websocket 的方式
我开发它的方式类似于主从通信。每当客户端发送一个字符串时,服务器都会对其进行解码然后回答。目前我只是响应一个字符'e',它被设计成一个计数器。问题是我在客户端实现了 websocket,以便在收到消息时发送“e”,然后在页面上显示消息。
问题
问题是它进行了大约 15 次交易,然后我可以看到通信正在从 Stellaris 板重新传输到 Stellaris 板,然后通信关闭。连接关闭后,我注意到我无法访问板上的任何其他页面。它只是不再响应了。
我对可能导致它的原因的假设
这让我相信事务太快了,可能存在实现错误、lwIP 错误或硬件错误(我使用 enet_io 示例作为基础)。
我对如何修复它的假设
看到这个后,我可以想象我需要控制发送到微控制器的字符串,使其每秒发送一次,或者甚至更少,因为目前它每秒执行 1000 个事务,有时甚至更多。
问题
所以……在我的试验之后,我还有几个问题需要回答。websockets需要这种关系吗?客户要求和服务器在哪里服务?或者只要连接打开,我可以简单地将数据从服务器流式传输到客户端吗?我的假设是放慢我的利率会奏效吗?