forked from centrifugal/centrifuge
/
disconnect.go
67 lines (65 loc) · 2.07 KB
/
disconnect.go
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
package centrifuge
// Disconnect allows to configure how client will be disconnected from server.
type Disconnect struct {
// Reason is a short description of disconnect.
Reason string `json:"reason"`
// Reconnect gives client an advice to reconnect after disconnect or not.
Reconnect bool `json:"reconnect"`
}
// Some predefined disconnect structures used by library internally. Though
// it's always possible to create Disconnect with any field values on the fly.
var (
// DisconnectNormal is clean disconnect when client cleanly closes connection.
DisconnectNormal = &Disconnect{
Reason: "",
Reconnect: true,
}
// DisconnectShutdown sent when node is going to shut down.
DisconnectShutdown = &Disconnect{
Reason: "shutdown",
Reconnect: true,
}
// DisconnectInvalidToken sent when client came with invalid token.
DisconnectInvalidToken = &Disconnect{
Reason: "invalid token",
Reconnect: false,
}
// DisconnectBadRequest sent when client uses malformed protocol
// frames or wrong order of commands.
DisconnectBadRequest = &Disconnect{
Reason: "bad request",
Reconnect: false,
}
// DisconnectServerError sent when internal error occurred on server.
DisconnectServerError = &Disconnect{
Reason: "internal server error",
Reconnect: true,
}
// DisconnectExpired sent when client connection expired.
DisconnectExpired = &Disconnect{
Reason: "expired",
Reconnect: true,
}
// DisconnectSubExpired sent when client subscription expired.
DisconnectSubExpired = &Disconnect{
Reason: "subscription expired",
Reconnect: true,
}
// DisconnectStale sent to close connection that did not become
// authenticated in configured interval after dialing.
DisconnectStale = &Disconnect{
Reason: "stale",
Reconnect: false,
}
// DisconnectSlow sent when client can't read messages fast enough.
DisconnectSlow = &Disconnect{
Reason: "slow",
Reconnect: true,
}
// DisconnectWriteError sent when an error occurred while writing to
// client connection.
DisconnectWriteError = &Disconnect{
Reason: "write error",
Reconnect: true,
}
)