wangzhibo
6 天以前 7dcc2997614f849258091f5d66e648317a40d323
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import {
  WSController,
  OnWSConnection,
  Inject,
  OnWSMessage,
} from '@midwayjs/core';
import { CsConnService } from '../service/conn';
import { CsSocketTokenMiddleware } from './middleware/token';
import { CsMsgService } from '../service/msg';
/**
 * code-socket
 */
@WSController('/cs')
export class CsSocketIoController {
  @Inject()
  ctx;
 
  @Inject()
  csConnService: CsConnService;
 
  @Inject()
  csMsgService: CsMsgService;
 
  // 客户端连接
  @OnWSConnection({ middleware: [CsSocketTokenMiddleware] })
  async onConnectionMethod() {
    const { isAdmin, userId } = this.ctx.connData;
    await this.csConnService.binding(isAdmin, userId, this.ctx.id);
    this.ctx.emit('message', '连接成功');
  }
 
  // 发送消息
  @OnWSMessage('send', { middleware: [CsSocketTokenMiddleware] })
  async send(data) {
    const { isAdmin, userId } = this.ctx.connData;
    const { sessionId, content } = data;
    await this.csMsgService.send(
      {
        userId,
        sessionId,
        content,
      },
      isAdmin
    );
  }
}