37 lines
1.1 KiB
TypeScript
37 lines
1.1 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';
|
|
import WebNamespace from './web-server'
|
|
|
|
@namespace('/pow')
|
|
class PowNamespace implements interfaces.Namespace {
|
|
@lazyInjectNamed(TYPE.Namespace, WebNamespace.name)
|
|
webNsp: interfaces.Namespace;
|
|
nsp: Namespace;
|
|
connection(socket: io.Socket) {
|
|
teraManager.pows[socket.id] = socket;
|
|
}
|
|
@listener()
|
|
web(socket: io.Socket, msg: any) {
|
|
this.webNsp.nsp.send('Recover From Pow: ' + JSON.stringify(msg))
|
|
}
|
|
@listener()
|
|
message(socket: io.Socket, msg: any) {
|
|
this.webNsp.nsp.to('pow').send(msg);
|
|
switch (msg.cmd) {
|
|
case "POW":
|
|
global.SERVER.MiningProcess(msg);
|
|
break;
|
|
case "HASHRATE":
|
|
global.ADD_HASH_RATE(msg.CountNonce);
|
|
break;
|
|
}
|
|
}
|
|
disconnect(socket: io.Socket) {
|
|
delete teraManager.pows[socket.id]
|
|
}
|
|
}
|
|
|
|
export default PowNamespace;
|