Giter VIP home page Giter VIP logo

freddychen / nettychat Goto Github PK

View Code? Open in Web Editor NEW
2.3K 48.0 556.0 3.86 MB

基于Netty+TCP+Protobuf实现的Android IM库,包含Protobuf序列化、TCP拆包与粘包、长连接握手认证、心跳机制、断线重连机制、消息重发机制、读写超时机制、离线消息、线程池等功能。

Home Page: https://juejin.im/post/5c97ae12e51d45580b681b0b

License: Apache License 2.0

Java 100.00%
im netty tcp chat socket protobuf nio aio bio heartbeat

nettychat's People

Contributors

freddychen avatar jiaoxinnyu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nettychat's Issues

消息发送问题

TIM截图20190430175740
1.发送失败是否也需要返回给应用层
2.如果发送的时候发现连接失败 也就是心跳机制一直再重连 但是就是发送一瞬间连接断掉 这个时候直接暴力返回是否不好?是否再发送的时候判断连接是否挂掉 然后做重连操作?

未收到服务端的握手响应情况

看代码,握手消息没有加入消息重发管理器中,所以如果握手消息发送失败或者没有收到服务器握手响应的情况下,客户端不会重发也不会重连

消息发送的问题

  1. 消息长度用2个字节标识,所有消息长度不能大于65535,但是发送消息的时候没有判断消息长度
    如果超过长度发消息会报异常,但这条消息还是会重发几次
    image
    2.重试的间隔写错了吧,应该是getResendInterval()吧
    image

启动报错

2020-03-28 18:32:14.538 2601-2628/? E/AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1
Process: com.example.msmk.nettychat, PID: 2601
java.lang.IllegalStateException: app not init...
at com.example.msmk.nettychat.NettyChatApp.sharedInstance(NettyChatApp.java:22)
at com.example.msmk.nettychat.im.IMSEventListener.isNetworkAvailable(IMSEventListener.java:52)
at com.example.msmk.imlib.netty.NettyTcpClient.isNetworkAvailable(NettyTcpClient.java:594)

切换网络的时候出现重复连接失败--连接成功--连接失败

作者你好,非常感谢你提供的思路和代码,但是我在使用你的demo时,发现如题问题,当我连接成功之后,正常发送消息,此时切换一下wifi(从一个wifi切换到另一个wifi),会出现一只重复连接失败--连接成功--连接失败这样循环,日志如图
image
我debug看了一下,发现问题可能出在TCPChannelInitializerHandler上,它重复的创建,重复添加了几个handler,可能导致之前的handler中channelInactive方法被多次回调,而出发重连,不知有其他小伙伴遇到这种问题没有

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.