我正尝试使用Haskell conduit实现一个非平凡协议(在TCP上)。我认为以下情况是非平凡的示例:
- 读取一些标头字节,如果它们匹配预期,则忽略它们并继续;否则,向客户端返回错误。
- 读取指定长度N的字节以指示字段的长度,然后将该数量的字节读入一个字节串。
- 执行来回握手,例如能力协商。在协商后,根据协商结果调用不同的服务器端代码。 (例如,协商服务器和客户端都同意的协议版本)
- 如果客户端无法快速协商协议,则断开连接并向客户端发送错误消息。