-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Description
System.Runtime.InteropServices.JavaScript.JSException : InvalidAccessError: Failed to execute 'close' on 'WebSocket': The code must be either 1000, or between 3000 and 4999. 1003 is neither.
see #45470 for tests
part of: #44666
Update:
Looks like an implementation detail of WebSockets.close() as provided by the browser.
The following definitions are sourced from the IANA website [Ref]. Note that the 1xxx codes are only WebSocket-internal and not for the same meaning by the transported data (like when the application-layer protocol is invalid). The only permitted codes to be specified in Firefox are 1000 and 3000 to 4999 [Source, Bug].
Found reference to in reported issue of specific source code checking and verifying this code: https://searchfox.org/mozilla-central/rev/bf81d741ff5dd11bb364ef21306da599032fd479/dom/websocket/WebSocket.cpp#2533
Have been able to reproduce the FireFox report above on Chrome as well.
Any of the following codes will throw the error except for NormalClosure.
| Code | Value | Desc |
|---|---|---|
| Empty | 1005 | No error specified. |
| EndpointUnavailable | 1001 | (1001) Indicates an endpoint is being removed. Either the server or client will become unavailable. |
| InternalServerError | 1011 | (1011) The connection will be closed by the server because of an error on the server. |
| InvalidMessageType | 1003 | (1003) The client or server is terminating the connection because it cannot accept the data type it received. |
| InvalidPayloadData | 1007 | (1007) The client or server is terminating the connection because it has received data inconsistent with the message type. |
| MandatoryExtension | 1010 | (1010) The client is terminating the connection because it expected the server to negotiate an extension. |
| MessageTooBig | 1009 | (1009) The client or server is terminating the connection because it has received a message that is too big for it to process. |
| NormalClosure | 1000 | (1000) The connection has closed after the request was fulfilled. |
| PolicyViolation | 1008 | (1008) The connection will be closed because an endpoint has received a message that violates its policy. |
| ProtocolError | 1002 | (1002) The client or server is terminating the connection because of a protocol error. |