Comments (4)
1.不知道作者是否遇到过 多线程进行发送消息的时候例如A->B->C 这种顺序发送消息 但是具体接受消息的顺序不是这个顺序 那样的话解析的时候就会出错 比如C->B->A 这种顺序返回 这种情况是否有好的方案解决?
from nettychat.
1.发送失败是否也需要返回给应用层
2.如果发送的时候发现连接失败 也就是心跳机制一直再重连 但是就是发送一瞬间连接断掉 这个时候直接暴力返回是否不好?是否再发送的时候判断连接是否挂掉 然后做重连操作?
首先,非常感谢您提出的问题。
1.如果channel不为空,也就是长连接正常的话,消息发送失败会返回给应用层,详见MsgTimeoutTask.java,但channel为空的话,也就是长连接已断开或者没连上,这个时候可以加上返回给应用层的逻辑。
2.虽然这种情况不常见,但确实是一个问题,后续会优化,再次感谢您的意见。
from nettychat.
1.不知道作者是否遇到过 多线程进行发送消息的时候例如A->B->C 这种顺序发送消息 但是具体接受消息的顺序不是这个顺序 那样的话解析的时候就会出错 比如C->B->A 这种顺序返回 这种情况是否有好的方案解决?
这种情况我遇到不少,虽然不是经常出现,但网络情况不稳定的话,出现的概率也并不低。我观察过微信,也会有这种问题出现,但出现的概率比较低。正常情况下,不会出现这种情况。而且,消息顺序,不是太重要的,比如发送方发送A-B-C三条消息,接收方收到的顺序是C-B-A或B-C-A之类的,应该没有太大的问题,如果真的要解决的话,我个人觉得,用消息队列来处理应该可以,就是发送的时候,先把消息放到队列里,再从队列里取出,如果发送成功,就从队列中移除,如果不成功,就指定一个重试周期,但不能太长,不然会影响后面的消息的发送,如果一个重试周期还是发送不成功的话,可以放到队列的末尾,或者移除掉,通知应用层手动重发。如果您有更好的方案,也麻烦告诉我哈,一起学习。
from nettychat.
其实我的意思是 如果多线程消息返回顺序错误 会导致相应的线程回调出问题 例如一个回调期待的是PersonEntity 但是由于错乱 返回了PersonAEntity 这样会出现问题 之前我也没好的办法解决 就使用串行来解决 跟你说的消息队列是同一种方案
from nettychat.
Related Issues (19)
- 客户端用 Netty,太重了吧 HOT 8
- 客户端会基于NIO写一份吗?
- ui界面的交互实现可以分享出来吗 HOT 1
- netty+protostuff写的推送服务端,和你这个貌似很搭配
- 这个支持ws吗? HOT 2
- 有没有包括后端支持离线消息的demo? HOT 1
- 启动报错 HOT 4
- 服务器端的源码有不 HOT 1
- 感觉重连这部分写的有些复杂了 HOT 1
- 这样的错误可以解决吗
- 服务端也使用Netty吗? HOT 1
- 有没有配套服务端的代码 HOT 2
- 求支持音视频通信 HOT 4
- 消息发送的问题 HOT 2
- 未收到服务端的握手响应情况
- 注释有个地方写错了
- 切换网络的时候出现重复连接失败--连接成功--连接失败 HOT 4
- ui界面的实现 老哥有分享出来吗 最近刚好在实现这部分
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nettychat.