summaryrefslogtreecommitdiff
path: root/src/net_test.moon
blob: 25d79cafcc8fa8b119535afc89981b0257029734 (plain)
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
	})