我目前正在使用有状态的基于文本的协议(包括握手和一些来回的字符串来交换数据)使用 scala/akka 实现 TCP 服务器。
考虑到我从客户端得到一个 ByteString,什么是实现解析发送的字符串并决定应该发回哪个命令的状态的推荐方式?
我假设它与http://doc.akka.io/docs/akka/snapshot/scala/fsm.html有关,但到目前为止我找不到套接字的示例。
谢谢
您可能希望首先使用管道进行正确的字符串框架、编码/解码和背压:http: //doc.akka.io/docs/akka/2.2.0/scala/io-codec.html
在 TCP 部分有一个使用管道的简单示例:http: //doc.akka.io/docs/akka/2.2.0/scala/io-tcp.html#Usage_Example__TcpPipelineHandler_and_SSL
(不要对它使用 SSL 感到困惑,你可以忽略那部分)
是的,FSM 模块可能是你想要用来实现协议状态的。