forked from circlecloud/tera
1
0
Fork 0
tera/src/rpc/server/ws-server/web-server.ts

39 lines
1.2 KiB
TypeScript

import { namespace, listener, io, TYPE, interfaces } from '@cc-server/ws'
import { Namespace } from 'socket.io';
import { lazyInjectNamed } from '@cc-server/ioc';
import { teraManager } from '../../manager';
@namespace('/web')
class WebNamespace implements interfaces.Namespace {
nsp: Namespace;
connection(socket: io.Socket) {
socket.send('Connect succseful...')
}
@listener()
webmsg(socket: io.Socket, msg: any) {
global.ToLog(`Recover webmsg ${JSON.stringify(msg)}`)
switch (msg.cmd) {
case "list":
socket.send(`Client List:`)
let index = 0;
for (let id in teraManager.pows) {
const pow = teraManager.pows[id];
socket.send(`${index} => ${pow.id}: ${pow.conn.remoteAddress}`)
index++
}
break;
case "pow":
socket.send('Join Pow Room...')
socket.join('pow')
break;
case "leavepow":
socket.leave('pow')
socket.send('Leave Pow Room...')
break;
}
}
}
export default WebNamespace;