NettyIM
NettyIM copied to clipboard
A high-performance, high-configuration IM SDK based on Netty development, supports TCP protocol、 websocket protocol,、UDP protocol
TCP模式 设置完心跳,一直不发送,Websocket 没有问题
例:ws://websockettest.xxx.com:80/ws?userId=123&chatroom=456 当我的url是一个完整带参数的path的时候,这样在某些情况下就会出现需要等待很久的情况。【我的实际域名是国外的可能也会导致创建速度更慢】 因为new InetSocketAddress(address.getUrl(),address.getPort());会解析域名,这样会引起创建连接需要等待很久会感觉特别慢。 建议修改:可以统一都使用InetSocketAddress.createUnresolved(address.getUrl(), address.getPort()); 因为你只是用InetSocketAddress来存储了你需要的数据,并没有必须要解析引起不必要的等待。
室外条件有时候网络状况不太好,有的设备经常断开重连发现的问题,网络不太好如果握手未完成,发送心跳,会导致整个流程卡在心跳包发送  既没有连接状态的回调,也不触发心跳超时的重连逻辑。 正常的应该是先回调Connect Success 然后发送心跳包,完成整个重连流程  我在 RealConnection.ChannelInitializerHandler WebSocket的逻辑中添加了握手完成的判断,再发送心跳后 ``` webSocketHandler.handshakeFuture().addListener((ChannelFutureListener) future -> { if (future.isSuccess()) { // 连接成功,启动心跳机制 if (heartBeatMsg != null) { //设置了心跳包,则里面启动心跳机制 addHeartbeatHandler(pipeline, connectionPool, heartbeatInterval, readerIdleTime,...