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