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
|
net = require("net")
ui = require("ui")
test_button = ui.button(0,0,100,100,"Test")
pull_button = ui.button(100,0,100,100,"Pull")
send_button = ui.button(200,0,100,100,"Send")
peer1, peer2, conn = nil, nil, nil
test_button.on = (e) =>
net.register_message("HelloRequest",{
required:{
n1: "number"
n2: "number"
}
})
net.register_message("HelloResponse",{
required:{
n: "number"
}
})
peer1 = net.Peer()
peer1\on("open", (data) =>
print("Peer1 opened", data)
)
peer1\on("data",(data) =>
print("Peer 1 received data!")
)
peer1\on("error",(data) =>
error("Peer 1 error:" .. tostring(data))
)
peer1\on("connection",(message)=>
print("Peer1 connection:", message)
message.data\on("data",(data)=>
print("Peer1 received data:",data)
)
)
peer2 = net.Peer()
peer2_startup = (peer) ->
peer\on("open", (data) =>
print("Peer2 opened",data)
conn = peer\connect(peer1.id)
conn\on("data",(data) =>
print("Peer2 data:",data)
)
)
peer\on("connection", (message) =>
print("Peer2 connected", message)
message.data\on("data",(data)=>
print("Peer2 received data:", data)
)
)
peer\on("error", (message) =>
print("peer2 error:", message)
if message.data.type == "unavailable-id"
peer\replace_id!
peer2_startup(peer)
return
error("Peer2 error: " .. tostring(data))
)
peer\on("data", (data) =>
print("Peer2 on data",data)
)
peer2_startup(peer2)
pull_button.on = (e) =>
net.pump!
print("Peers:" .. tostring(net.peers!))
send_button.on = (e) =>
conn\send("HelloRequest",{
n1:1
n2:2
})
|