-
Notifications
You must be signed in to change notification settings - Fork 0
/
client.js
82 lines (50 loc) · 1.55 KB
/
client.js
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
var socket = require('socket.io-client')('http://localhost:3000');
const repl = require('repl');
const chalk = require('chalk');
var username = null;
socket.on('disconnect', ()=>{
socket.emit('disconnected')
})
socket.on('connect',()=>{
console.log(chalk.red("=== start chatting ==="));
username = process.argv[2]
socket.emit('privatechat',{username:username});
});
socket.on('message',(data)=>{
const {cmd, username} = data
console.log(chalk.green(username+": "+ cmd.split('\n')[0]));
})
socket.on('res',(data)=>{
console.log(data.mes);
})
socket.on('res2',(data)=>{
console.log(data.mes)
})
socket.on('error',(data)=>{
console.log(`some error occured ${data.mes}`)
})
socket.on('stderr',(data)=>{
console.log(`some stderr error occured ${data.mes}`)
})
socket.on('stdout',(data)=>{
console.log(`The output for command is ${data.mes}`)
})
socket.on('test',(data)=>{
console.log(data)
})
const replServer = repl.start({
prompt:'',
eval: (cmd)=>{
socket.send({cmd, username})
}
})
replServer.defineCommand('privatemess',{
action:(name)=>{
socket.emit('privatemess',{mes:name.split(' ').splice(0,name.split(' ').length-1), username:username, priority: name.split(' ')[name.split(' ').length-1]})
}
})
replServer.defineCommand('privatecommand',{
action:(name)=>{
socket.emit('privatecommand',{command:name.split(' ').splice(0,name.split(' ').length-1).join(' '), username:username,priority:name.split(' ')[name.split(' ').length-1] })
}
})