我有一个基于微服务的体系结构,Netty io在Spring启动应用程序上运行,当我想向客户端发送消息时,我必须等待客户端的消息将回复发送给我想发送的回复。 如何在不等待他与我通信的情况下向客户发送消息? 我迷失在这一步。任何时候发送消息给客户端Netty Io
回答
您可以处理这样的:
- 让客户端服务器
- 上连接让客户端发送Hello报文(可以肯定的是你的客户之一)
- 截获该消息上服务器并在通道上存储参考(可在每个通道处理程序上通过调用
ctx.channel()
) - 捕获
channelInactive
事件在客户端断开连接时删除引用
而不是等待HelloMessage,您也可以捕获channelActive
事件,但每次有人连接到您的监听端口时它都会被触发,即使它不是您的客户端之一。这就是为什么我更喜欢使用的“Hello消息”
现在,你有通道上的参考,你可以通过调用channel.writeAndFlush()
但我的疑惑之一是,我怎么能使用这个从另一个微服务开放的渠道呢?我可以把它放在一个变量中,并封装它从异步方法中消耗? –
不,你可能需要定义一个不同的worflow,例如一个微服务的角色是接收/传递消息(比如发布 - 订阅模式),我们没有太多关于你的achitecture和你的代码的信息关于那个 – Prim
这个想法是让端点接收一个应该发送给客户端的命令,接收这个命令并且通过RabbitMQ中的一个队列将它发送到所有的Socket服务器节点,并且看看客户端是什么并且通过消费者来自队列 –
- 1. Netty IO向客户端发送消息
- 2. ServerSocket发送消息给客户端
- 3. 发送通知消息给客户端
- 4. 从服务器发回消息给客户端 - Netty 4.1.0
- 5. 将消息发送到Socket IO中的特定客户端
- 6. Qt WebSockets,如何发送消息给客户端
- 7. Boost.Asio的 - 如何将消息发送给多个客户端
- 8. 如何使用socket.io发送消息给特定客户端
- 9. 从Android Websocket客户端发送消息
- 10. 客户端无法发送消息
- 11. 套接字客户端发送消息
- 12. 将消息发送回客户端
- 13. CometD发布消息给客户端
- 14. 发送消息给自己netty
- 15. Codename One Sockets发送消息给客户
- 16. 发送消息给组中的所有客户端,当前客户端除外
- 17. Python xmpppy客户端不发送消息到appengine xmpp客户端
- 18. C#Tcpclient客户端发送消息到另一个客户端
- 19. Java - HttpServlet:什么时候发送给客户端?
- 20. 从服务器发送消息给客户端,与SignalR
- 21. RMI:客户端发送消息给服务器
- 22. 服务器不发送消息给客户端(ESP8266)
- 23. Apache Artemis经纪人不发送消息给SwiftMQ AMQP客户端
- 24. 发送消息给已过滤的客户端
- 25. SignalR发送消息给随机数的客户端
- 26. SignalR不Push消息发送给客户端
- 27. BlazeDS的Push消息发送给所有的客户端
- 28. 春天:发送消息给websocket客户端
- 29. 从catch块发送格式错误消息给客户端
- 30. 将消息发送给特定的客户端线程
使用两个连接发送的时候你想有一个消息,或者检查如何HTTP流水线完成( https://en.wikipedia.org/wiki/HTTP_pipelining)。 – sturcotte06
我该怎么做? –
在NETTY,不知道,但与原始tcp,使用一个连接发送,一个接收。 – sturcotte06