public void TestDidClose() { C4WebSocketCloseCode closeCode = C4WebSocketCloseCode.WebSocketCloseAbnormal; string reason = "Unexpected error in client logic"; var method = webSocketWrapper.GetType().GetMethods(BindingFlags.NonPublic | BindingFlags.Instance).Where(m => m.Name == "DidClose"); //var res = method.ElementAt(0).Invoke(webSocketWrapper, new object[2] { closeCode, reason }); }
private unsafe void DidClose(C4WebSocketCloseCode closeCode, string reason) { if (closeCode == C4WebSocketCloseCode.WebSocketCloseNormal) { DidClose(null); return; } ResetConnections(); Log.To.Sync.I(Tag, $"WebSocket CLOSED WITH STATUS {closeCode} \"{reason}\""); var c4Err = Native.c4error_make(C4ErrorDomain.WebSocketDomain, (int)closeCode, reason); _c4Queue.DispatchAsync(() => { if (_closed) { Log.To.Sync.W(Tag, "Double close detected, ignoring..."); return; } Native.c4socket_closed(_socket, c4Err); _closed = true; }); }
private unsafe void DidClose(C4WebSocketCloseCode closeCode, string reason) { if (closeCode == C4WebSocketCloseCode.WebSocketCloseNormal) { DidClose(null); return; } if (NetworkStream == null) { return; } ResetConnections(); Log.To.Sync.I(Tag, $"WebSocket CLOSED WITH STATUS {closeCode} \"{reason}\""); var c4Err = Native.c4error_make(C4ErrorDomain.WebSocketDomain, (int)closeCode, reason); _c4Queue.DispatchAsync(() => Native.c4socket_closed(_socket, c4Err)); }