gpt4 book ai didi

java - 套接字IO : Web socket error upon sending bigger payloads

转载 作者:行者123 更新时间:2023-12-02 04:33:22 27 4
gpt4 key购买 nike

我正在尝试将~10MB大小的负载发送到服务器。每次我尝试这样做时,套接字 io 库都会崩溃并显示以下崩溃日志。我不太确定为什么会崩溃以及如何修复它。将来,我们计划将数据传输任务转移到 HTTP 协议(protocol),但现在我们必须使用套接字。

有什么想法可以解决或规避这个问题吗?

2019-06-12 15:39:44.927 24039-24055/com.hulu.mdm.agent D/com.hulu.mdm.internal.socketLogging.AndroidLoggingHandler: io.socket.client.Manager
2019-06-12 15:39:44.924 24039-24141/com.hulu.mdm.agent W/System.err: io.socket.engineio.client.EngineIOException: websocket error
2019-06-12 15:39:44.928 24039-24141/com.hulu.mdm.agent W/System.err: at io.socket.engineio.client.Transport.onError(Transport.java:63)
2019-06-12 15:39:44.929 24039-24055/com.hulu.mdm.agent I/_MdmSocketImpl: Socket-Error occured!
2019-06-12 15:39:44.930 24039-24141/com.hulu.mdm.agent W/System.err: at io.socket.engineio.client.transports.WebSocket.access$400(WebSocket.java:24)
2019-06-12 15:39:44.933 24039-24141/com.hulu.mdm.agent W/System.err: at io.socket.engineio.client.transports.WebSocket$1$5.run(WebSocket.java:107)
2019-06-12 15:39:44.933 24039-24141/com.hulu.mdm.agent W/System.err: at io.socket.thread.EventThread$2.run(EventThread.java:80)
2019-06-12 15:39:44.934 24039-24141/com.hulu.mdm.agent W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
2019-06-12 15:39:44.934 24039-24141/com.hulu.mdm.agent W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
2019-06-12 15:39:44.934 24039-24141/com.hulu.mdm.agent W/System.err: at java.lang.Thread.run(Thread.java:764)
2019-06-12 15:39:44.935 24039-24141/com.hulu.mdm.agent W/System.err: Caused by: java.net.SocketException: Connection reset
2019-06-12 15:39:44.935 24039-24141/com.hulu.mdm.agent W/System.err: at java.net.SocketInputStream.read(SocketInputStream.java:209)
2019-06-12 15:39:44.936 24039-24141/com.hulu.mdm.agent W/System.err: at java.net.SocketInputStream.read(SocketInputStream.java:139)
2019-06-12 15:39:44.936 24039-24141/com.hulu.mdm.agent W/System.err: at okio.Okio$2.read(Okio.java:139)
2019-06-12 15:39:44.936 24039-24141/com.hulu.mdm.agent W/System.err: at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
2019-06-12 15:39:44.936 24039-24141/com.hulu.mdm.agent W/System.err: at okio.RealBufferedSource.request(RealBufferedSource.java:67)
2019-06-12 15:39:44.937 24039-24141/com.hulu.mdm.agent W/System.err: at okio.RealBufferedSource.require(RealBufferedSource.java:60)
2019-06-12 15:39:44.937 24039-24141/com.hulu.mdm.agent W/System.err: at okio.RealBufferedSource.readByte(RealBufferedSource.java:73)
2019-06-12 15:39:44.937 24039-24141/com.hulu.mdm.agent W/System.err: at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.java:113)
2019-06-12 15:39:44.937 24039-24141/com.hulu.mdm.agent W/System.err: at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:97)
2019-06-12 15:39:44.938 24039-24141/com.hulu.mdm.agent W/System.err: at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:262)
2019-06-12 15:39:44.938 24039-24141/com.hulu.mdm.agent W/System.err: at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:201)
2019-06-12 15:39:44.938 24039-24141/com.hulu.mdm.agent W/System.err: at okhttp3.RealCall$AsyncCall.execute(RealCall.java:141)
2019-06-12 15:39:44.939 24039-24141/com.hulu.mdm.agent W/System.err: at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
2019-06-12 15:39:44.939 24039-24141/com.hulu.mdm.agent W/System.err: ... 3 more
2019-06-12 15:39:44.953 24039-24055/com.hulu.mdm.agent I/_MdmSocketImpl: [io.socket.engineio.client.EngineIOException: websocket error]

最佳答案

根据崩溃日志,我可以看到服务器正在重置套接字。你的服务器支持分块写入吗?在 Java 中复制流的建议方法是:

while ((count = in.read(buffer)) > 0)
{
out.write(buffer, 0, count);
}

请检查您的服务器端,它们可能会遇到 OutOfMemoryError

关于java - 套接字IO : Web socket error upon sending bigger payloads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56564036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com