3.0.1 • Published 1 year ago

@dazejs/websocket-provider v3.0.1

Weekly downloads
8
License
MIT
Repository
github
Last release
1 year ago

GitHub issues npm npm actions codecov GitHub license

WebSocket 提供者

基于 Daze.js 的 Websocket 提供者,基于 socket.io 实现

安装

$ npm install --save @dazejs/websocket-provider

注册服务

修改项目 src/config/app.ts 文件, 添加 WebsocketServiceProviderproviders 数组中

import { WebsocketServiceProvider } from '@dazejs/websocket-provider';

export default {
  // ...
  providers: [
    // ...
    WebsocketServiceProvider,
  ]
}

使用

定义 websocket 服务

通过使用 @websock 装饰器来表示这是一个 websocket 服务

import { websock } from '@dazejs/websocket-provider';

@websock()
export class Example {

}

监听事件

通过继承 ws.subscribe() 装饰器来监听事件

import { BaseWebsocket, ws, websock } from '@dazejs/websocket-provider';

@websock()
export class Example extends BaseWebsocket {
  @ws.subscribe('event')
  handle() {
    // ...
  }
}

获取数据

使用默认注入参数获取

@ws.subscribe('event')
handle(data: any) {
  console.log(data)
}

同时也支持多个参数

@ws.subscribe('event')
handle(arg1: any, arg2: any, arg3: any) {
  console.log(arg1, arg2, arg3)
}

使用装饰器注入

使用 @ws.message() 注入单个数据

@ws.subscribe('event')
handle(@ws.message() data: any) {
  console.log(data)
}

使用 @ws.messages() 注入多个数据

@ws.subscribe('event')
handle(@ws.messages() args: any[]) {
  console.log(...args)
}

响应事件

通过 Response 对象响应事件

@ws.subscribe('event')
handle(@ws.messages() args: any[]) {
  const data = 'test'
  return this.response('event1', data)
}

也可以通过 Response 提供的方法修改事件名和参数

@ws.subscribe('event')
handle(@ws.messages() args: any[]) {
  const arg1 = 'test1';
  const arg2 = 'test2';
  return this.response().setEvent('event2').setParameters(arg1, arg2)
}

通过返回结构化的对象来响应事件

@ws.subscribe('event')
handle(@ws.messages() args: any[]) {
  return {
    event: 'event2',
    data: 'test',
  }
}

License

MIT licensed

3.0.1

1 year ago

3.0.0

1 year ago

2.1.0

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.0

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago