aboutsummaryrefslogtreecommitdiff
path: root/lib/websocket/examples/cmd/server
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2022-06-09 21:57:02 +0700
committerShulhan <ms@kilabit.info>2022-06-09 21:57:02 +0700
commit25a9b45517225b09039cfb7ef887e5db3bb8ebbc (patch)
treed6cc6d69f4ef9280521810a88fdbfdfc4194c1ce /lib/websocket/examples/cmd/server
parentca845ca347a171c93e71621ca5249914c6a322b4 (diff)
downloadpakakeh.go-25a9b45517225b09039cfb7ef887e5db3bb8ebbc.tar.xz
lib/websocket: refactoring code
Replace assignment from using ":=" to use variable declaration with type. Rationale: clarity and minimize duplicate temporary variables with the same type.
Diffstat (limited to 'lib/websocket/examples/cmd/server')
-rw-r--r--lib/websocket/examples/cmd/server/main.go86
1 files changed, 54 insertions, 32 deletions
diff --git a/lib/websocket/examples/cmd/server/main.go b/lib/websocket/examples/cmd/server/main.go
index 17da239c..d029036b 100644
--- a/lib/websocket/examples/cmd/server/main.go
+++ b/lib/websocket/examples/cmd/server/main.go
@@ -21,19 +21,22 @@ var server *websocket.Server
func main() {
log.SetFlags(0)
- opts := &websocket.ServerOptions{
- Address: ":9001",
- // Register the authentication handler.
- HandleAuth: handleAuth,
- HandleClientAdd: handleClientAdd,
- HandleClientRemove: handleClientRemove,
- }
+ var (
+ opts = &websocket.ServerOptions{
+ Address: ":9001",
+ // Register the authentication handler.
+ HandleAuth: handleAuth,
+ HandleClientAdd: handleClientAdd,
+ HandleClientRemove: handleClientRemove,
+ }
+
+ err error
+ )
server = websocket.NewServer(opts)
- // Register the message handler
- err := server.RegisterTextHandler(http.MethodPost, "/message",
- handlePostMessage)
+ // Register the message handler.
+ err = server.RegisterTextHandler(http.MethodPost, "/message", handlePostMessage)
if err != nil {
log.Fatal(err)
}
@@ -46,9 +49,13 @@ func main() {
// handleAuth authenticated the new connection by checking the Header "Key"
// value.
func handleAuth(req *websocket.Handshake) (ctx context.Context, err error) {
- key := req.Header.Get("Key")
+ var (
+ key string = req.Header.Get("Key")
+ id int64
+ user *examples.Account
+ )
- for id, user := range examples.Users {
+ for id, user = range examples.Users {
if user.Key == key {
ctx = context.WithValue(context.Background(),
websocket.CtxKeyUID, id)
@@ -63,21 +70,27 @@ func handleAuth(req *websocket.Handshake) (ctx context.Context, err error) {
func handleClientAdd(ctx context.Context, conn int) {
log.Printf("server: adding client %d ...", conn)
- uid := ctx.Value(websocket.CtxKeyUID).(int64)
- user := examples.Users[uid]
+ var (
+ uid int64 = ctx.Value(websocket.CtxKeyUID).(int64)
+ user *examples.Account = examples.Users[uid]
+ body string
+ packet []byte
+ err error
+ c int
+ )
// Broadcast to other connections that new user is connected.
- body := user.Name + " joining conversation..."
- packet, err := websocket.NewBroadcast(examples.BroadcastSystem, body)
+ body = user.Name + " joining conversation..."
+ packet, err = websocket.NewBroadcast(examples.BroadcastSystem, body)
if err != nil {
log.Fatal(err)
}
- for _, c := range server.Clients.All() {
+ for _, c = range server.Clients.All() {
if c == conn {
continue
}
- err := websocket.Send(c, packet)
+ err = websocket.Send(c, packet)
if err != nil {
log.Println(err)
}
@@ -89,21 +102,27 @@ func handleClientAdd(ctx context.Context, conn int) {
func handleClientRemove(ctx context.Context, conn int) {
log.Printf("server: client %d has been disconnected ...", conn)
- uid := ctx.Value(websocket.CtxKeyUID).(int64)
- user := examples.Users[uid]
+ var (
+ uid int64 = ctx.Value(websocket.CtxKeyUID).(int64)
+ user *examples.Account = examples.Users[uid]
+ body string
+ packet []byte
+ err error
+ c int
+ )
// Broadcast to other connections that user is disconnected.
- body := user.Name + " leaving conversation..."
- packet, err := websocket.NewBroadcast(examples.BroadcastSystem, body)
+ body = user.Name + " leaving conversation..."
+ packet, err = websocket.NewBroadcast(examples.BroadcastSystem, body)
if err != nil {
log.Fatal(err)
}
- for _, c := range server.Clients.All() {
+ for _, c = range server.Clients.All() {
if c == conn {
continue
}
- err := websocket.Send(c, packet)
+ err = websocket.Send(c, packet)
if err != nil {
log.Println(err)
}
@@ -111,16 +130,19 @@ func handleClientRemove(ctx context.Context, conn int) {
}
// handlePostMessage handle message that is send to server by client.
-func handlePostMessage(ctx context.Context, req *websocket.Request) (
- res websocket.Response,
-) {
- uid := ctx.Value(websocket.CtxKeyUID).(int64)
- user := examples.Users[uid]
+func handlePostMessage(ctx context.Context, req *websocket.Request) (res websocket.Response) {
+ var (
+ uid int64 = ctx.Value(websocket.CtxKeyUID).(int64)
+ user *examples.Account = examples.Users[uid]
+ body string = user.Name + ": " + req.Body
+ packet []byte
+ err error
+ conn int
+ )
log.Printf("server: message from %s: %q\n", user.Name, req.Body)
- body := user.Name + ": " + req.Body
- packet, err := websocket.NewBroadcast(examples.BroadcastMessage, body)
+ packet, err = websocket.NewBroadcast(examples.BroadcastMessage, body)
if err != nil {
res.Code = http.StatusInternalServerError
res.Body = err.Error()
@@ -130,7 +152,7 @@ func handlePostMessage(ctx context.Context, req *websocket.Request) (
// Broadcast the message to all connected clients, including our
// connections. Remember, that user could connected through many
// application.
- for _, conn := range server.Clients.All() {
+ for _, conn = range server.Clients.All() {
if conn == req.Conn {
continue
}