dhhAndroid/RxWebSocket

subscriber中接收的数据不正确

liqinghua188 opened this issue · 3 comments

RxWebSocketUtil 中的onMessage接收数据与 subscriber中接收到的数据不一致。例如:

onMessage中 收到 A, B 两个数据包(服务端连续发送), subscriber中接收到的数据却为:A , A (即会变为一样的数据包)

原因找到了:WebSocketOnSubscribe 中的startInfo、stringInfo、byteStringInfo需定义为方法局部变量。现定义为成员变量,连续收到的数据包,stringinfo会被后面的修改掉

            @Override
            public void onMessage(WebSocket webSocket, String text) {
                if (!subscriber.isUnsubscribed()) {
                    WebSocketInfo  stringInfo = new WebSocketInfo();
                    stringInfo.setWebSocket(webSocket);
                    stringInfo.setString(text);
                    subscriber.onNext(stringInfo);
                }
            }

此问题我我已知晓,本来想着WebSocketInfo紧作为信息传递的载体,如果数据推送频繁,下游处理不及时就会被替换.下个版本会修复.

好的~