-
Notifications
You must be signed in to change notification settings - Fork 0
/
client.js
61 lines (53 loc) · 900 Bytes
/
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
//
// WSSH client
//
// Cannot be run as a child on Windows (bug with stdio), only testing there
//
if(process.argv.length!=3)
{
var
path = require('path')
console.info('Websocket netcat.')
console.info(
'Usage:',
path.basename(process.argv[0]),
path.basename(__filename),
'ws[s]://host[:port]/uri'
)
process.exit(1)
}
var
ws = require('ws'),
buf = [],
client = new ws(process.argv[2])
process.stdin
.on('readable', stdioRead)
.on('end', Close)
.on('error', Close)
client
.on('open', wsOpen)
.on('message', wsMsg)
.on('close', Close)
.on('error', Close)
function stdioRead()
{
var x
while(null!=(x=this.read()))
if(buf)
buf.push(x)
else
client.send(x)
}
function wsOpen()
{
buf.forEach(function(data){ client.send(data) })
buf = null
}
function wsMsg(data)
{
process.stdout.write(data)
}
function Close()
{
process.exit()
}