From 156344f21d6fe3b264ba72a4098bcd9c547c6759 Mon Sep 17 00:00:00 2001
From: JoyD <12854922+zqm114@user.noreply.gitee.com>
Date: Wed, 22 Oct 2025 22:49:45 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Websocketclient=E6=8E=A7?=
=?UTF-8?q?=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Web/Vue/WebSocketClient/.npmrc | 4 ++
Web/Vue/WebSocketClient/README.md | 59 ++++++++++++++++++
Web/Vue/WebSocketClient/index.js | 4 ++
.../joyd.web.vue.websocket-client-1.0.0.tgz | Bin 0 -> 3316 bytes
Web/Vue/WebSocketClient/package.json | 24 +++++++
5 files changed, 91 insertions(+)
create mode 100644 Web/Vue/WebSocketClient/.npmrc
create mode 100644 Web/Vue/WebSocketClient/README.md
create mode 100644 Web/Vue/WebSocketClient/index.js
create mode 100644 Web/Vue/WebSocketClient/joyd.web.vue.websocket-client-1.0.0.tgz
create mode 100644 Web/Vue/WebSocketClient/package.json
diff --git a/Web/Vue/WebSocketClient/.npmrc b/Web/Vue/WebSocketClient/.npmrc
new file mode 100644
index 0000000..d38fff9
--- /dev/null
+++ b/Web/Vue/WebSocketClient/.npmrc
@@ -0,0 +1,4 @@
+registry=http://47.111.181.23:8081/repository/npm-releases/
+//47.111.181.23:8081/repository/npm-releases/:_auth=YWRtaW46YWRtaW4=
+always-auth=true
+email=admin@example.com
\ No newline at end of file
diff --git a/Web/Vue/WebSocketClient/README.md b/Web/Vue/WebSocketClient/README.md
new file mode 100644
index 0000000..6e7cb7d
--- /dev/null
+++ b/Web/Vue/WebSocketClient/README.md
@@ -0,0 +1,59 @@
+# WebSocketClient
+
+Vue 3 的 WebSocket 客户端组件,提供连接/断开、自动重连、消息发送与事件回调。
+
+## 安装
+
+```bash
+npm i com.joyd.websocket-client --registry=http://47.111.181.23:8081/repository/npm-public/
+```
+
+> 发布在私有仓库 `npm-releases`,对外读取建议通过组仓库 `npm-public`。
+
+## 使用
+
+```ts
+import { createApp } from 'vue'
+import App from './App.vue'
+
+// 按需导入
+import { WebSocketClient } from 'com.joyd.websocket-client'
+
+createApp(App).component('WebSocketClient', WebSocketClient).mount('#app')
+```
+
+或在 SFC 中:
+
+```vue
+
+
+
+
+
+```
+
+## Props
+- `url`: WebSocket 服务端地址。
+- `protocols`: 子协议,数组或字符串。
+- `autoReconnect`: 是否自动重连(默认 `true`)。
+- `reconnectInterval`: 重连间隔毫秒(默认 `3000`)。
+- `maxReconnectAttempts`: 最大重连次数(默认无限)。
+
+## 事件
+- `connect`: 连接成功触发。
+- `disconnect`: 连接关闭触发。
+- `message`: 收到消息触发,`(payload: any)`。
+- `error`: 发生错误触发。
+
+## 发布说明
+已设置 `publishConfig.registry` 指向:
+`http://47.111.181.23:8081/repository/npm-releases/`
+
+如需发布:
+```bash
+npm publish
+```
+
+需要在本目录配置 `.npmrc` 或使用 `npm adduser --registry=` 完成鉴权。
\ No newline at end of file
diff --git a/Web/Vue/WebSocketClient/index.js b/Web/Vue/WebSocketClient/index.js
new file mode 100644
index 0000000..368910f
--- /dev/null
+++ b/Web/Vue/WebSocketClient/index.js
@@ -0,0 +1,4 @@
+import WebSocketClient from './WebSocketClient.vue'
+
+export { WebSocketClient }
+export default WebSocketClient
\ No newline at end of file
diff --git a/Web/Vue/WebSocketClient/joyd.web.vue.websocket-client-1.0.0.tgz b/Web/Vue/WebSocketClient/joyd.web.vue.websocket-client-1.0.0.tgz
new file mode 100644
index 0000000000000000000000000000000000000000..c47f63feb6ca4b80f7292f873fbd9c2f536239f3
GIT binary patch
literal 3316
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.3.0"
+ },
+ "keywords": ["vue3", "websocket", "component", "joyd"],
+ "author": "JoyD",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "publishConfig": {
+ "registry": "http://47.111.181.23:8081/repository/npm-releases/"
+ }
+}
\ No newline at end of file