【发布时间】:2016-11-18 23:32:41
【问题描述】:
我正在使用嵌入式码头和弹簧进行 java 到 java 通过 http 进行通信。我的问题是我的服务器应用程序也必须在同一个端口上处理纯 TCP 消息。
有没有办法检测是否有 servlet 无法处理的 TCP 消息到达?
感谢您的回答,我添加了更多详细信息:
- 我无法修改客户端。原因是老版本的客户端使用的是纯java tcp socket,结果证明新服务器必须向后兼容老客户端。
- 必须使用相同的端口
- 旧客户端消息是简单套接字上的短序列化文本。 1:打开连接,2:发送文本,3:关闭连接
- 我的服务器看起来像这样:http://kielczewski.eu/2013/11/using-embedded-jetty-spring-mvc/
- 我不需要解析消息。检测到没有使用 http 的消息到达并获取源主机名就足够了。
【问题讨论】:
-
您提出的任何解决方案都需要您自己的高度定制的
ServerConnector实现来预解析传入的任何内容以了解其 HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP /2,或原始 TCP,然后在 Jetty(对于 http)或您的应用程序(如果不是 http)中调用适当的层。出于好奇,为什么不直接使用 WebSocket 呢?
标签: java spring http embedded-jetty