From 22619b314c42ede4c13b5f5f7750dba0ae002e08 Mon Sep 17 00:00:00 2001 From: zjgyb Date: Wed, 3 May 2023 17:44:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E3=80=8AWebSocket?= =?UTF-8?q?=E7=9F=A5=E8=AF=86=E7=9B=98=E7=82=B9=E3=80=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../img/bufferedAmount.png" | Bin 0 -> 342222 bytes .../img/ws_extension.png" | Bin 0 -> 51198 bytes .../img/ws_msg.png" | Bin 0 -> 4335 bytes .../img/ws_reason_error.png" | Bin 0 -> 11763 bytes .../img/ws_separator.png" | Bin 0 -> 20416 bytes .../img/ws_separator_error.png" | Bin 0 -> 61408 bytes .../img/ws_url_1.png" | Bin 0 -> 60233 bytes .../img/ws_url_2.png" | Bin 0 -> 44007 bytes .../index.md" | 510 ++++++++++++++++++ 9 files changed, 510 insertions(+) create mode 100644 "article/2023/WebSokcet\347\237\245\350\257\206\345\210\244\346\226\255/img/bufferedAmount.png" create mode 100644 "article/2023/WebSokcet\347\237\245\350\257\206\345\210\244\346\226\255/img/ws_extension.png" create mode 100644 "article/2023/WebSokcet\347\237\245\350\257\206\345\210\244\346\226\255/img/ws_msg.png" create mode 100644 "article/2023/WebSokcet\347\237\245\350\257\206\345\210\244\346\226\255/img/ws_reason_error.png" create mode 100644 "article/2023/WebSokcet\347\237\245\350\257\206\345\210\244\346\226\255/img/ws_separator.png" create mode 100644 "article/2023/WebSokcet\347\237\245\350\257\206\345\210\244\346\226\255/img/ws_separator_error.png" create mode 100644 "article/2023/WebSokcet\347\237\245\350\257\206\345\210\244\346\226\255/img/ws_url_1.png" create mode 100644 "article/2023/WebSokcet\347\237\245\350\257\206\345\210\244\346\226\255/img/ws_url_2.png" create mode 100644 "article/2023/WebSokcet\347\237\245\350\257\206\345\210\244\346\226\255/index.md" diff --git "a/article/2023/WebSokcet\347\237\245\350\257\206\345\210\244\346\226\255/img/bufferedAmount.png" "b/article/2023/WebSokcet\347\237\245\350\257\206\345\210\244\346\226\255/img/bufferedAmount.png" new file mode 100644 index 0000000000000000000000000000000000000000..242eff12de9026a09d56c36a143b64de475bdf98 GIT binary patch literal 342222 zcmd3OhdY;j__j(Vm5{a(Nj6c0kS#k@w#dkejBFZ8sBE&cce1l93E8{MWD^pyc~3ph z^ZOm|Kky#!_c)&8`G)WPz3PCCLq|IPC&48 ziD)N&vY+H-D*m_6N?P59fPma~`@bFiMl=riA(^d&nyreZk*&R+wIPAZT@x!k8(Tx| zV~u?T1g8nEii@Z^ME>lv*P`g!x}`}xTWA%rDfXY~®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