6
6
"github.com/labstack/echo/v4"
7
7
"github.com/labstack/echo/v4/middleware"
8
8
"github.com/ndthuan/websocketserver"
9
- "math/rand "
9
+ "log "
10
10
"time"
11
11
)
12
12
@@ -31,6 +31,7 @@ func broadcast(msg string, excluded *websocket.Conn) {
31
31
32
32
func loginHandler () websocketserver.MessageHandler {
33
33
return func (connection * websocket.Conn , listener * websocketserver.Server , message websocketserver.Message ) error {
34
+ log .Println ("Login handler triggered" )
34
35
username := message .Payload
35
36
36
37
authenticatedConnections [connection ] = username
@@ -43,9 +44,14 @@ func loginHandler() websocketserver.MessageHandler {
43
44
44
45
func logoutHandler () websocketserver.MessageHandler {
45
46
return func (connection * websocket.Conn , listener * websocketserver.Server , message websocketserver.Message ) error {
47
+ log .Println ("Logout handler triggered" )
46
48
username , loggedIn := authenticatedConnections [connection ]
47
49
48
50
if loggedIn {
51
+ connection .WriteJSON (websocketserver.Message {
52
+ Type : "system-message" ,
53
+ Payload : "Bye-bye, " + username ,
54
+ })
49
55
delete (authenticatedConnections , connection )
50
56
broadcast (fmt .Sprintf ("%s left the room" , username ), connection )
51
57
_ = connection .WriteMessage (websocket .CloseMessage , []byte {})
@@ -57,9 +63,10 @@ func logoutHandler() websocketserver.MessageHandler {
57
63
58
64
func disconnectedCallback () websocketserver.ConnectionCallback {
59
65
return func (connection * websocket.Conn , listener * websocketserver.Server ) error {
66
+ log .Println ("Client disconnected" )
60
67
loggedInUser , already := authenticatedConnections [connection ]
61
68
if already {
62
- broadcast (fmt .Sprintf ("%s disconnected" , loggedInUser ), connection )
69
+ broadcast (fmt .Sprintf ("%s was disconnected" , loggedInUser ), connection )
63
70
delete (authenticatedConnections , connection )
64
71
}
65
72
return nil
@@ -68,9 +75,10 @@ func disconnectedCallback() websocketserver.ConnectionCallback {
68
75
69
76
func connectedCallback () websocketserver.ConnectionCallback {
70
77
return func (connection * websocket.Conn , listener * websocketserver.Server ) error {
78
+ log .Println ("Client connected" )
71
79
return connection .WriteJSON (websocketserver.Message {
72
80
Type : "system-message" ,
73
- Payload : "Hi there, this is private message to you. Welcome! " ,
81
+ Payload : "You are connected " ,
74
82
})
75
83
}
76
84
}
@@ -89,8 +97,9 @@ func humanMessageHandler() websocketserver.MessageHandler {
89
97
90
98
func standaloneRunner () websocketserver.StandaloneRunner {
91
99
return func (server * websocketserver.Server ) {
100
+ log .Println ("Standalone runner was started" )
92
101
for {
93
- time .Sleep (time .Duration ( rand . Intn ( 10 )) * time . Second )
102
+ time .Sleep (time .Second )
94
103
95
104
server .Broadcast (func (conn * websocket.Conn ) (* websocketserver.Message , bool ) {
96
105
if username , loggedIn := authenticatedConnections [conn ]; loggedIn {
0 commit comments