@zenweb/websocket
TypeScript icon, indicating that this package has built-in type declarations

2.3.1 • Public • Published

ZenWeb WebSocket module

ZenWeb

import { $debug, $query, Context, mapping } from 'zenweb';
import { WebSocket, RedisSocketSession } from '@zenweb/websocket';

export class Controller {
  @mapping()
  index(ctx: Context) {
    ctx.template('index.njk');
    return { name: 'Hello' };
  }

  @mapping()
  async ws(ws: WebSocket, ss: RedisSocketSession) {
    $debug('websocket 连接');
    const { name } = await $query.get({ name: '!trim1' });
    const room = 'chat';
    await ss.add(room, ws);
    ss.send(room, `欢迎 ${name} 来到聊天室!`);
    ws.once('close', () => {
      ss.send(room, `${name} 离开了聊天室!`);
    });
    ws.on('message', data => {
      const str = data.toString();
      ss.send(room, name + ': ' + str);
    });
  }
}

Dependencies (5)

Dev Dependencies (12)

Package Sidebar

Install

npm i @zenweb/websocket

Weekly Downloads

53

Version

2.3.1

License

MIT

Unpacked Size

16.8 kB

Total Files

14

Last publish

Collaborators

  • yefei777