@mac-xiang/socket

1.0.0 • Public • Published

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 中添加如下代码

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];
          });
        }
      });
    }
  },
});
  1. 在需要接收消息通知的 vue 页面添加如下属性.
<script>
  export default {
    events: {
      recv(data) {
        // 这里的data 就是送达 message 消息的内容.
      },
    },
  };
</script>

使用说明

  1. s=new tmkSocket(parm); // 创建实例. parm 参数如下
export interface createTmkSocket {
  address: string; // 服务器地址
  token: string; // 服务器认证信息
  reconnect?: number; // 重新连接尝试次数; 小于0 永远尝试连接;0|undefind 不重新连接.
  reTime?: number; // 重新连接间隔;最小值5000毫秒
  callback?: fun; // 连接成功后回调
  eventFuns?: of; // 需要覆盖监听的事件函数集合
}
  1. 可使用 s.send(data,method); 这里的 method 就是原 socket.io 中的 socket.emit(method,data);正好与之相反. method 默认是"message";
  2. 也可以使用 之前导出函数 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: 初次提交

Readme

Keywords

Package Sidebar

Install

npm i @mac-xiang/socket

Weekly Downloads

0

Version

1.0.0

License

AGPL-3.0

Unpacked Size

26.3 kB

Total Files

8

Last publish

Collaborators

  • tmkmk