Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Codester241
GitHub Repository: Codester241/Kahoot-Flood
Path: blob/master/kahoot/register.go
463 views
1
package kahoot
2
3
func (c *Connection) Register(nick string) error {
4
// Handshake, subscribe, connect, register
5
if err := c.Handshake(); err != nil {
6
return err
7
}
8
if err := c.SubscribeAll(); err != nil {
9
return err
10
}
11
12
// Initial "connect" message
13
content := map[string]interface{}{"clientId": c.clientId,
14
"connectionType": "websocket"}
15
p := c.Packet("/meta/connect", content)
16
if err := c.WriteAck(p, -1); err != nil {
17
return err
18
}
19
20
if err := c.UnsubscribeAll(); err != nil {
21
return err
22
}
23
if err := c.SubscribeAll(); err != nil {
24
return err
25
}
26
27
loginData := map[string]interface{}{"type": "login", "gameid": c.gameId,
28
"host": "kahoot.it", "name": nick}
29
lastId, err := c.WriteData("/service/controller", loginData)
30
if err != nil {
31
return err
32
}
33
if _, err := c.ReadId(lastId); err != nil {
34
return err
35
}
36
37
return nil
38
}
39
40
func (c *Connection) SubscribeAll() error {
41
return c.Subscribe("/service/player", "/service/controller",
42
"/service/status")
43
}
44
45
func (c *Connection) UnsubscribeAll() error {
46
return c.Unsubscribe("/service/player", "/service/controller",
47
"/service/status")
48
}
49
50