Клиентам с помощью WebSocket отправляется CloseEvent при закрытии соединения. Это доставляется слушателю, указанному в атрибуте onclose объекта WebSocket.
Возвращает unsigned short, содержащий код закрытия, отправленный сервером. Допускаются следующие статусные коды. Определения взяты с сайта IANA [Ссылка]. Обратите внимание, что коды 1xxx являются внутренними для WebSocket и не имеют одинакового значения для передаваемых данных (например, когда протокол прикладного уровня недействителен). В Firefox разрешены только коды 1000 и от 3000 до 4999 [Источник, Баг].
<tr>
<td class="header">Status code</td>
<td class="header">Name</td>
<td class="header">Description</td>
</tr>
<tr>
<td><code>0</code>–<code>999</code></td>
<td> </td>
<td>Reserved and not used.</td>
</tr>
<tr>
<td><code>1000</code></td>
<td>Normal Closure</td>
<td>Normal closure; the connection successfully completed whatever purpose for which it was created.</td>
</tr>
<tr>
<td><code>1001</code></td>
<td>Going Away</td>
<td>The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection.</td>
</tr>
<tr>
<td><code>1002</code></td>
<td>Protocol Error</td>
<td>The endpoint is terminating the connection due to a protocol error.</td>
</tr>
<tr>
<td><code>1003</code></td>
<td>Unsupported Data</td>
<td>The connection is being terminated because the endpoint received data of a type it cannot accept (for example, a text-only endpoint received binary data).</td>
</tr>
<tr>
<td><code>1004</code></td>
<td> </td>
<td>Reserved. A meaning might be defined in the future.</td>
</tr>
<tr>
<td><code>1005</code></td>
<td>No Status Recvd</td>
<td>Reserved. Indicates that no status code was provided even though one was expected.</td>
</tr>
<tr>
<td><code>1006</code></td>
<td>Abnormal Closure</td>
<td>Reserved. Used to indicate that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected.</td>
</tr>
<tr>
<td><code>1007</code></td>
<td>Invalid frame payload data</td>
<td>The endpoint is terminating the connection because a message was received that contained inconsistent data (e.g., non-UTF-8 data within a text message).</td>
</tr>
<tr>
<td><code>1008</code></td>
<td>Policy Violation</td>
<td>The endpoint is terminating the connection because it received a message that violates its policy. This is a generic status code, used when codes 1003 and 1009 are not suitable.</td>
</tr>
<tr>
<td><code>1009</code></td>
<td>Message too big</td>
<td>The endpoint is terminating the connection because a data frame was received that is too large.</td>
</tr>
<tr>
<td><code>1010</code></td>
<td>Missing Extension</td>
<td>The client is terminating the connection because it expected the server to negotiate one or more extension, but the server didn't.</td>
</tr>
<tr>
<td><code>1011</code></td>
<td>Internal Error</td>
<td>The server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.</td>
</tr>
<tr>
<td><code>1012</code></td>
<td>Service Restart</td>
<td>The server is terminating the connection because it is restarting. [Ref]</td>
</tr>
<tr>
<td><code>1013</code></td>
<td>Try Again Later</td>
<td>The server is terminating the connection due to a temporary condition, e.g. it is overloaded and is casting off some of its clients. [Ref]</td>
</tr>
<tr>
<td><code>1014</code></td>
<td>Bad Gateway</td>
<td>The server was acting as a gateway or proxy and received an invalid response from the upstream server. This is similar to 502 HTTP Status Code.</td>
</tr>
<tr>
<td><code>1015</code></td>
<td>TLS Handshake</td>
<td>Reserved. Indicates that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified).</td>
</tr>
<tr>
<td><code>1016</code>–<code>1999</code></td>
<td> </td>
<td>Reserved for future use by the WebSocket standard.</td>
</tr>
<tr>
<td><code>2000</code>–<code>2999</code></td>
<td> </td>
<td>Reserved for use by WebSocket extensions.</td>
</tr>
<tr>
<td><code>3000</code>–<code>3999</code></td>
<td> </td>
<td>Available for use by libraries and frameworks. May not be used by applications. Available for registration at the IANA via first-come, first-serve.</td>
</tr>
<tr>
<td><code>4000</code>–<code>4999</code></td>
<td> </td>
<td>Available for use by applications.</td>
</tr>