You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This seems to report by some players. They can join for the first time, but on the second time they can't join and stuck on loading factory message.
I finally found a way to reproduce it, at least on my machine.
Create a large fake payload on FactoryData packet. I created a byte array of 100MB.
Let client login by ngrok address to simulate bad network condition.
Let host move around or do some stuff after sending FactoryData packet to client. The client will error after a period and disconnet.
Client log:
[Info :NebulaMultiplayerMod] Requested factory for planet Alpheratz III号星 (ID: 103) from host
[Debug :NebulaMultiplayerMod] Packet Sent: FactoryLoadRequest
[Warning:NebulaMultiplayerMod] 2022/6/7 上午 12:04:37|Fatal|<>c__DisplayClass174_0.<startReceiving>b__2:0|WebSocketSharp.WebSocketException: The header part of a frame could not be read.
at WebSocketSharp.WebSocketFrame.processHeader (System.Byte[] header) [0x0001f] in <a2974eceb86942248aa42ebfa46be6d0>:IL_001F
at WebSocketSharp.WebSocketFrame+<>c__DisplayClass71_0.<readHeaderAsync>b__0 (System.Byte[] bytes) [0x00001] in <a2974eceb86942248aa42ebfa46be6d0>:IL_0001
at WebSocketSharp.Ext+<>c__DisplayClass54_0.<ReadBytesAsync>b__0 (System.IAsyncResult ar) [0x0008e] in <a2974eceb86942248aa42ebfa46be6d0>:IL_008E
[Info :NebulaMultiplayerMod] 2022/6/7 上午 12:04:37|Debug|WebSocket.closeHandshake:0|Was clean?: False
sent: False
received: False
I'm using websocket-sharp in my own Bepinex project and getting the same error. It always happens after a variable amount of time, usually 5 minutes, when sending a message to the server. .. Did you guys ever find a fix? Thanks.
@JamzOhJamz In our case this seems to be related with WebSocketServiceManager.
Sometimes when sending a large fragments of packet, ping frame may not get respond within 1 sec (default value) if the network condition is not good, thus the session gets clean up by WebSocketServiceManager.
So I try to increase socket.WaitTime for server to avoid this situation, seems solved during my testing.
This seems to report by some players. They can join for the first time, but on the second time they can't join and stuck on loading factory message.
I finally found a way to reproduce it, at least on my machine.
FactoryData
packet. I created a byte array of 100MB.FactoryData
packet to client. The client will error after a period and disconnet.Client log:
Host log:
The text was updated successfully, but these errors were encountered: