入门19_goWebSocket
go websocket安全校验机制 jwt
01,属于get,put还是post
get,在线测试工具没选项,查看报文实际用的是get
02,如何传递参数?
url参数:类似http的get请求,url中可以携带参数,后端获取方法和http一样的。
header参数:python
ws=websocket.WebSocket()
#建立websocket连接,这里传入了 header ,需要注意header的写入方式
ws.connect("ws://xx.xx.xx.xx 8000/port/streaming?vend=Test", header=["x-token:xxxxxxxxxxxxxx", "x-tenant:T0014", "x-server:1026"])post能取得body么?好像不能post连接。
03,接口测试方法
a,postman支持。
b.在线工具,百度:websocket在线测试,很多工具。
c,curl,但curl的支持方式比较奇怪
curl --include \
--no-buffer \
--header "Connection: Upgrade" \
--header "Upgrade: websocket" \
--header "Host: echo.websocket.org" \
--header "Origin: https://echo.websocket.org" \
--header "Sec-WebSocket-Key: NVwjmQUcWCenfWu98asDmg==" \
--header "Sec-WebSocket-Version: 13" \
http://echo.websocket.org其中: 01,地址填写,http://echo.websocket.org,而非 ws://echo.websocket.org
02,注意这里不需要特定的密钥(Sec-WebSocket-Key),所以随便取一个都可以。该头文件的作用是防止缓存websocket请求。
不过,联通后,有输入光标的,但却无法向server发送出消息(不确定是否自己方法有问题)。只能做是否联通的检查,
d,websocat,websocket调通后,可取代curl,可交互输入消息
参考:https://github.com/vi/websocat
wesocat报错不完善:
命令:websocat ws://127.0.0.1:8002/ws?name=tx3
响应:
websocat: WebSocketError: Received unexpected status code (200 OK)
websocat: error running而curl响应:
HTTP/1.1 200 OK
Content-Type: application/json
Server: gf-demos
Date: Thu, 28 Apr 2022 07:57:41 GMT
Content-Length: 44
{"code":1,"message":"cookie token is empty"}包含完整报错信息。
websocat可添加header字段支持(jwt)
websocat --header="Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTE3Mzg5NjUsImlkIjoxLCJvcmlnX2lhdCI6MTY1MTEzNDE2NSwicGFzc3BvcnQiOiJlc3dpbjAxIn0.ZawjnuSNso9vK5NXF1nOmCVPpWBICX83rmuZvz1LQ7o" "ws://127.0.0.1:8002/ws"04,集成jwt
其实就是header添加token,并且保证中间件可以正确识别解析
