# socket **Repository Path**: MacXiang/socket ## Basic Information - **Project Name**: socket - **Description**: 适用于vue/uniapp 的socket.io 封装,如不想支持vue.则注释掉vue部分代码即可(index.ts 文件底部).记得编译哦. - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-27 - **Last Updated**: 2021-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # socket #### 介绍 适用于 vue/uniapp 的 weapp.socket.io 封装. #### 软件架构 编译: tsc 测试: 没有 #### 安装教程 1. npm i @mac-xiang/socket" 2. import { tmkSocket, clients, history, events, ioEvent, send } from "@mac-xiang/socket"; 如果需要使用 vue 事件则在 main.js 中添加如下代码 ```typescript Vue.mixin({ created() { if (this.$options.events) { Object.keys(this.$options.events).forEach((key) => { let handler = this.$options.events[key]; if (typeof handler === "string") { handler = this[handler]; } this[key + "::handler"] = handler.bind(this); this.$root.$on(key, this[key + "::handler"]); if (ioEvent.indexOf(key) >= 0) { if (!this.events) this.events = {}; this.events[key] = uuid.v1(); if (!events[key]) events[key] = {}; events[key][this.events[key]] = this[key + "::handler"]; } }); } }, beforeDestroy() { if (this.$options.events) { Object.keys(this.$options.events).forEach((key) => { this.$root.$off(key, this[key + "::handler"]); if (ioEvent.indexOf(key) >= 0) { Object.keys(events[key]).map((k) => { delete events[key][k]; }); } }); } }, }); ``` 3. 在需要接收消息通知的 vue 页面添加如下属性. ```vue ``` #### 使用说明 1. s=new tmkSocket(parm); // 创建实例. parm 参数如下 ```typescript export interface createTmkSocket { address: string; // 服务器地址 token: string; // 服务器认证信息 reconnect?: number; // 重新连接尝试次数; 小于0 永远尝试连接;0|undefind 不重新连接. reTime?: number; // 重新连接间隔;最小值5000毫秒 callback?: fun; // 连接成功后回调 eventFuns?: of; // 需要覆盖监听的事件函数集合 } ``` 2. 可使用 s.send(data,method); 这里的 method 就是原 socket.io 中的 socket.emit(method,data);正好与之相反. method 默认是"message"; 3. 也可以使用 之前导出函数 send 进行发送. #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 啥都没有.就自己用.自己能看懂就行.就几个方法,自己去 index.ts 中看吧,有注解. 逻辑有点杂.看代码去吧. npm 上传包命令 npm publish --registry http://registry.npmjs.org npm config set registry https://registry.npmjs.org npm publish --access public --registry http://registry.npmjs.org npm config set scope mac-xiang --global npm version prerelease npm version prepatch 别笑,记不住 #### 更新日志 1.0.0: 初次提交