websocket调试工具
网上在线调试工具,一搜一大堆,为啥还要推荐这个(wscat)呢?只能简单调试需要在线测试,在数据敏感的时代,自己的数据给扔出去是否安全特殊离线环境无法测试安装
需要node环境地址:https:github。comwebsocketswscatclone下来或者直接下载执行安装npminstallgwscat使用wscathUsage:wscat〔options〕(listenportconnecturl)Options:V,versionoutputtheversionnumberauthusername:passwordaddbasicHTTPauthenticationheader(connectonly)cacaspecifyaCertificateAuthority(connectonly)certcertspecifyaClientSSLCertificate(connectonly)hosthostoptionalhostkeykeyspecifyaClientSSLCertificateskey(connectonly)maxredirects〔num〕maximumnumberofredirectsallowed(connectonly)(default:10)nocolorrunwithoutcolorpassphrase〔passphrase〕specifyaClientSSLCertificateKeyspassphrase(connectonly)。Ifyoudontprovideavalue,itwillbepromptedforproxy〔protocol:〕host〔:port〕connectviaaproxy。ProxymustsupportCONNECTmethodslashenableslashcommandsforcontrolframes(ping〔data〕,pong〔data〕,close〔code〔,reason〕〕)c,connecturlconnecttoaWebSocketserverH,headerheader:valuesetanHTTPheader。Repeattosetmultiple(connectonly)(default:〔〕)L,locationfollowredirects(connectonly)l,listenportlistenonportn,nocheckdonotcheckforunauthorizedcertificateso,originoriginoptionaloriginp,protocolversionoptionalprotocolversionP,showpingpongprintanotificationwhenapingorpongisreceiveds,subprotocolprotocoloptionalsubprotocol(default:〔〕)w,waitsecondswaitgivensecondsafterexecutingcommandx,executecommandexecutecommandafterconnectingh,helpdisplayhelpforcommand
展示几个常用操作
首先可以模拟websocket服务wscatl6565执行完成之后,就会再本机的6565端口监听websocket
监听服务
然后另外再起一个终端,连接这个服务wscatcws:localhost:6565
这时服务端会看到有客户端连接
再尝试发送消息到服务端
服务端收到消息
服务端给客户端响应
同样,客户端顺利收到服务端消息,完成双向通信
已经可以正常通信,由于小工具,不支持多客户端同时连接,需要注意一下。
以上使用起来跟在线服务没有任何区别
以下才是重点
生产环境,不会直接裸露一个ws服务出来,这样没有任何认证、鉴权是非常不安全的
如上几个工具是在线版的,随便找的,可以看到无法传输任何其他的认证信息,这时我的websocket服务恰恰又需要认证,就无法调试了
这时,wscat就可以大显身手了
首先咱们使用普通方式连接
可以看到,现象是一致的,连接失败。而且原因也可以看到,缺少token参数
加入header参数token,可以看到成功建立连接,并且可以正常发送消息
wscat只提供了执行命令功能,但是对于维持心跳,周期执行场景支持不太友好,直接修改binwscat,即可支持自动执行ping,进行保活
周期执行指定命令
其他用法,大致同curl是相同的,各位小伙伴儿自己摸索吧,欢迎随时交流,最后再贴一下大佬的工具地址https:github。comwebsocketswscat