Aug*_*sto 7 sockets tcp scala akka
我用akka.io.tcp编写了一个客户端和服务器,在阅读客户端发送的消息时遇到了问题.我用json发送消息.在客户端,我这样写消息:
connection ! Write(ByteString(msgString))
Run Code Online (Sandbox Code Playgroud)
在服务器端,我有以下内容:
override def receive: Receive = {
case Received(data) => listener ! Json.parse(data.utf8String)
case PeerClosed => {
context stop self
}
}
Run Code Online (Sandbox Code Playgroud)
问题是akka一次只能读取多条消息,所以我得到了一个无效的Json.有没有办法让akka一次只读一条消息?
Akka的TCP模块(并且被设计为)非常"低级别",因此我们不提供任何类型的帧分隔符.您应该将其视为TCP级构建块,然后您必须构建您的东西.
在您的示例中,Actor必须聚合传入的数据块,并检测json文档何时"完成",然后触发解组.
为此提供开箱即用的东西的想法非常引人注目......我会问这些人我们计划支持这些用例的计划.
不过,我希望这有帮助!
| 归档时间: |
|
| 查看次数: |
1427 次 |
| 最近记录: |