Skip to content

Commit 9646e17

Browse files
committed
updates on WebSocket constants
Signed-off-by: Demin Yin <deminy@deminy.net>
1 parent c1e0d1b commit 9646e17

File tree

1 file changed

+48
-29
lines changed

1 file changed

+48
-29
lines changed

src/swoole/constants.php

Lines changed: 48 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -390,22 +390,51 @@
390390
define('SWOOLE_WORKER_BUSY', 1);
391391
define('SWOOLE_WORKER_IDLE', 2);
392392
define('SWOOLE_WORKER_EXIT', 3);
393+
394+
// WebSocket flags.
395+
define('SWOOLE_WEBSOCKET_FLAG_FIN', 1);
396+
define('SWOOLE_WEBSOCKET_FLAG_RSV1', 4);
397+
define('SWOOLE_WEBSOCKET_FLAG_RSV2', 8);
398+
define('SWOOLE_WEBSOCKET_FLAG_RSV3', 16);
399+
define('SWOOLE_WEBSOCKET_FLAG_MASK', 32);
400+
define('SWOOLE_WEBSOCKET_FLAG_COMPRESS', 2); // Used to indicate if a frame is compressed or not.
401+
402+
/*
403+
* WebSocket connection status. They are used as value of field "websocket_status" in the array returned from method
404+
* \Swoole\Server::getClientInfo().
405+
*
406+
* @see \Swoole\Server::getClientInfo()
407+
* @see \Swoole\Server::connection_info()
408+
*/
393409
define('SWOOLE_WEBSOCKET_STATUS_CONNECTION', 1);
394410
define('SWOOLE_WEBSOCKET_STATUS_HANDSHAKE', 2);
395411
define('SWOOLE_WEBSOCKET_STATUS_ACTIVE', 3);
396412
define('SWOOLE_WEBSOCKET_STATUS_CLOSING', 4);
413+
// Next five constants are kept for backward compatibility.
414+
define('WEBSOCKET_STATUS_CONNECTION', SWOOLE_WEBSOCKET_STATUS_CONNECTION);
415+
define('WEBSOCKET_STATUS_HANDSHAKE', SWOOLE_WEBSOCKET_STATUS_HANDSHAKE);
416+
define('WEBSOCKET_STATUS_FRAME', SWOOLE_WEBSOCKET_STATUS_ACTIVE);
417+
define('WEBSOCKET_STATUS_ACTIVE', SWOOLE_WEBSOCKET_STATUS_ACTIVE);
418+
define('WEBSOCKET_STATUS_CLOSING', SWOOLE_WEBSOCKET_STATUS_CLOSING);
419+
420+
// WebSocket opcodes.
421+
// @see https://datatracker.ietf.org/doc/html/rfc6455#section-11.8 WebSocket Opcode Registry
397422
define('SWOOLE_WEBSOCKET_OPCODE_CONTINUATION', 0);
398423
define('SWOOLE_WEBSOCKET_OPCODE_TEXT', 1);
399424
define('SWOOLE_WEBSOCKET_OPCODE_BINARY', 2);
400425
define('SWOOLE_WEBSOCKET_OPCODE_CLOSE', 8);
401426
define('SWOOLE_WEBSOCKET_OPCODE_PING', 9);
402427
define('SWOOLE_WEBSOCKET_OPCODE_PONG', 10);
403-
define('SWOOLE_WEBSOCKET_FLAG_FIN', 1);
404-
define('SWOOLE_WEBSOCKET_FLAG_RSV1', 4);
405-
define('SWOOLE_WEBSOCKET_FLAG_RSV2', 8);
406-
define('SWOOLE_WEBSOCKET_FLAG_RSV3', 16);
407-
define('SWOOLE_WEBSOCKET_FLAG_MASK', 32);
408-
define('SWOOLE_WEBSOCKET_FLAG_COMPRESS', 2);
428+
// Next six constants are kept for backward compatibility.
429+
define('WEBSOCKET_OPCODE_CONTINUATION', SWOOLE_WEBSOCKET_OPCODE_CONTINUATION);
430+
define('WEBSOCKET_OPCODE_TEXT', SWOOLE_WEBSOCKET_OPCODE_TEXT);
431+
define('WEBSOCKET_OPCODE_BINARY', SWOOLE_WEBSOCKET_OPCODE_BINARY);
432+
define('WEBSOCKET_OPCODE_CLOSE', SWOOLE_WEBSOCKET_OPCODE_CLOSE);
433+
define('WEBSOCKET_OPCODE_PING', SWOOLE_WEBSOCKET_OPCODE_PING);
434+
define('WEBSOCKET_OPCODE_PONG', SWOOLE_WEBSOCKET_OPCODE_PONG);
435+
436+
// WebSocket status codes.
437+
// @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.4.1 Status Code Definitions
409438
define('SWOOLE_WEBSOCKET_CLOSE_NORMAL', 1000);
410439
define('SWOOLE_WEBSOCKET_CLOSE_GOING_AWAY', 1001);
411440
define('SWOOLE_WEBSOCKET_CLOSE_PROTOCOL_ERROR', 1002);
@@ -418,29 +447,19 @@
418447
define('SWOOLE_WEBSOCKET_CLOSE_EXTENSION_MISSING', 1010);
419448
define('SWOOLE_WEBSOCKET_CLOSE_SERVER_ERROR', 1011);
420449
define('SWOOLE_WEBSOCKET_CLOSE_TLS', 1015);
421-
define('WEBSOCKET_STATUS_CONNECTION', 1);
422-
define('WEBSOCKET_STATUS_HANDSHAKE', 2);
423-
define('WEBSOCKET_STATUS_FRAME', 3);
424-
define('WEBSOCKET_STATUS_ACTIVE', 3);
425-
define('WEBSOCKET_STATUS_CLOSING', 4);
426-
define('WEBSOCKET_OPCODE_CONTINUATION', 0);
427-
define('WEBSOCKET_OPCODE_TEXT', 1);
428-
define('WEBSOCKET_OPCODE_BINARY', 2);
429-
define('WEBSOCKET_OPCODE_CLOSE', 8);
430-
define('WEBSOCKET_OPCODE_PING', 9);
431-
define('WEBSOCKET_OPCODE_PONG', 10);
432-
define('WEBSOCKET_CLOSE_NORMAL', 1000);
433-
define('WEBSOCKET_CLOSE_GOING_AWAY', 1001);
434-
define('WEBSOCKET_CLOSE_PROTOCOL_ERROR', 1002);
435-
define('WEBSOCKET_CLOSE_DATA_ERROR', 1003);
436-
define('WEBSOCKET_CLOSE_STATUS_ERROR', 1005);
437-
define('WEBSOCKET_CLOSE_ABNORMAL', 1006);
438-
define('WEBSOCKET_CLOSE_MESSAGE_ERROR', 1007);
439-
define('WEBSOCKET_CLOSE_POLICY_ERROR', 1008);
440-
define('WEBSOCKET_CLOSE_MESSAGE_TOO_BIG', 1009);
441-
define('WEBSOCKET_CLOSE_EXTENSION_MISSING', 1010);
442-
define('WEBSOCKET_CLOSE_SERVER_ERROR', 1011);
443-
define('WEBSOCKET_CLOSE_TLS', 1015);
450+
// Next twelve constants are kept for backward compatibility.
451+
define('WEBSOCKET_CLOSE_NORMAL', SWOOLE_WEBSOCKET_CLOSE_NORMAL);
452+
define('WEBSOCKET_CLOSE_GOING_AWAY', SWOOLE_WEBSOCKET_CLOSE_GOING_AWAY);
453+
define('WEBSOCKET_CLOSE_PROTOCOL_ERROR', SWOOLE_WEBSOCKET_CLOSE_PROTOCOL_ERROR);
454+
define('WEBSOCKET_CLOSE_DATA_ERROR', SWOOLE_WEBSOCKET_CLOSE_DATA_ERROR);
455+
define('WEBSOCKET_CLOSE_STATUS_ERROR', SWOOLE_WEBSOCKET_CLOSE_STATUS_ERROR);
456+
define('WEBSOCKET_CLOSE_ABNORMAL', SWOOLE_WEBSOCKET_CLOSE_ABNORMAL);
457+
define('WEBSOCKET_CLOSE_MESSAGE_ERROR', SWOOLE_WEBSOCKET_CLOSE_MESSAGE_ERROR);
458+
define('WEBSOCKET_CLOSE_POLICY_ERROR', SWOOLE_WEBSOCKET_CLOSE_POLICY_ERROR);
459+
define('WEBSOCKET_CLOSE_MESSAGE_TOO_BIG', SWOOLE_WEBSOCKET_CLOSE_MESSAGE_TOO_BIG);
460+
define('WEBSOCKET_CLOSE_EXTENSION_MISSING', SWOOLE_WEBSOCKET_CLOSE_EXTENSION_MISSING);
461+
define('WEBSOCKET_CLOSE_SERVER_ERROR', SWOOLE_WEBSOCKET_CLOSE_SERVER_ERROR);
462+
define('WEBSOCKET_CLOSE_TLS', SWOOLE_WEBSOCKET_CLOSE_TLS);
444463

445464
/*
446465
* The minimum number of milliseconds that can be used for time-related operations (e.g., timeout, time intervals, etc)

0 commit comments

Comments
 (0)