我正在使用嵌入式jetty和spring来通过http与java进行java通信。我的问题是我的服务器应用程序必须处理同一端口上的普通TCP消息。使用jetty接收非Http消息
有没有办法来检测到一个TCP消息是否到达了servlet无法处理的地步?
谢谢你的答案我想补充一些细节:
- 我不能修改客户端。原因是旧版本的客户端使用纯java tcp套接字,结果证明新服务器必须向后兼容旧客户端。
- 必须使用相同的端口
- 旧客户端消息是简单套接字上的短序列化文本。 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或Raw TCP,然后在Jetty(对于http)或您的应用程序(如果不是http)中调用适当的图层。出于好奇,为什么不使用WebSocket呢? –