我的服务已经使用 Websockets 与浏览器内的 HTML5 客户端进行通信。客户端由正常的 http 请求由同一服务器提供服务。
现在我想在浏览器之外提供相同的服务/应用程序,并且我想通过 TCP 套接字提供它。
我使用的 RPCs/action 对象将是相同的,序列化将是相同的,逻辑是相同的。我只想使用 TCP 套接字而不是 WebSocket。
我想将代码放在同一个“项目文件夹”下,在我部署 playframework 服务器时立即启动(基本上在启动时我想开始监听 WebSocket、TCP 套接字和 http 请求),并将所有内容都放在部署时相同的包。
我知道:
- 没有必要,因为 WebSocket 可以在非浏览器应用程序中使用,但请将此视为练习或好奇问题。
- playframework 是建立在 netty 之上的,我之前使用 netty 来做一些 TCP 服务(虽然没什么大不了,也没有准备好任何产品……所以不是专家)。所以他们应该一起工作吧?
我想做什么:
- 让 akka 演员监听新的套接字连接。
- 将连接(WS 或 TCP 套接字)包装到一个
ClientConnectionManager
实例中 - 将其传递给负责连接/rpc 逻辑的参与者。
我考虑的其他线索:重新实现 playframework Controller 类。
或者是否有已经实施的解决方案?