我正在考虑将 Spring State Machine 用于 TCP 客户端。协议本身是基于具有消息 id 和长度字段的专有 TCP 消息给出的。客户端与服务器建立 TCP 连接,发送一条消息,并在发送下一条消息之前始终等待响应。在每个州,只允许某些响应。多个客户端必须并行运行。
现在我有以下与 Spring State machine 相关的问题。
1) 在从断开连接到连接的初始转换期间,客户端通过 java.net.Socket 建立连接。如何使此套接字(或从套接字获得的 DataOutputStream 和 BufferedReader 对象)可用于其他转换的操作?
从这个意义上说,套接字将是状态机的某种全局资源。到目前为止,我看到的唯一方法是将它放在邮件标题中。但这看起来不太自然。
2) Spring State Machine 需要哪个运行时环境?
JVM 够用还是需要 Tomcat?
它是线程安全的吗?
谢谢,沃尔夫冈