0
我需要建议如何实现,如果有可能,与Spring集成以下TCP流不常见的TCP流:与Spring集成
- 只有服务器端的需求。
- 为输入连接
- 在客户端的连接的TCP服务器等待,服务器将数据发送到客户端
- 客户端与响应回复
- 服务器可以用新的数据立即回复或等待外部应用程序事件将新软件包发送给客户端。
在常规的代码可以证明如下:
def serverSocket = new ServerSocket(...)
def connSocket = serverSocket.accept()
connSocket.outputStream.write(...)
while(true) {
def readBuffer = new byte[256]
connSocket.inputStream.read(readBuffer)
if(needToSendBack(readBuffer)) {
connSocket.outputStream.write(...)
}
}
def sendByDemand(def data) {
connSocket.outputStream.write(data)
}
方法sendByDemand可从单独的线程调用。
这里是我标志着我自己的问题的列表,防止我与Spring集成实现它(2.x版):
- 据我了解,标准的“服务激活“方法不能在这种情况下工作,因为它是”连接事件“驱动的。所以,当应用程序决定将新的数据发送到客户端无法使用该服务激活
- 我没有“在TCP连接”事件。我发现,3.0版自带的事件,在这方面的支持,但因为我不能升级到3.0,我实现与连接工厂的拦截器的连接检查。但是,当我知道客户端已连接时,尝试使用直接通道发送消息会失败,并显示“无订户”错误。
如果有人可以发布这个场景的可能的Spring配置或者指向类似的流程示例,它可能会非常有帮助。