【Golang】Websocket使用token

本文介绍了在Golang中使用GoFrame框架实现WebSocket时,如何处理token的问题。当添加token后,服务端遇到错误,原因是请求头多了Sec-WebSocket-Protocol字段。为解决此问题,需要在服务端代码中特别处理这个头,从而成功建立WebSocket连接。
摘要由CSDN通过智能技术生成

近期在用GoFrame框架使用websocket时根据官方给出的案例创建websocket

golang 服务端

package main

import (
    "github.com/gogf/gf/frame/g"
    "github.com/gogf/gf/net/ghttp"
    "github.com/gogf/gf/os/gfile"
    "github.com/gogf/gf/os/glog"
)

func main() {
    s := g.Server()
    s.BindHandler("/ws", func(r *ghttp.Request) {
        ws, err := r.WebSocket()
        if err != nil {
            glog.Error(err)
            r.Exit()
        }
        for {
            msgType, msg, err := ws.ReadMessage()
            if err != nil {
                return
            }
            if err = ws.WriteMessage(msgType, msg); err != nil {
                return
            }
        }
    })
    s.SetServerRoot(gfile.MainPkgPath())
    s.SetPort(8199)
    s.Run()
}

客户端

$(function () {
    var url = "ws://127.0.0.1:8199/ws";
    var ws  = new WebSocket(url);
    try {
        //
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值