websoket入门问题

页面上有一个接口,get请求,接口url是http://xx.xx.xx.xx:8091/rest/deviceData/lastData?deviceNo=xxxx
这种get请求接口在vue里用ajax或者axios可以直接拿到的,现在业务那里有个需求希望这个接口的数据实时更新,我想要websoket,想请教的是:
1、这个地址能否直接作为websoket的url
2、如果作为websoket的url,我该怎么调用
let socket = new WebSocket('ws://xx.xx.xx.xx:8091/rest/deviceData/lastData?deviceNo=xxxx');
直接把http改成ws?是这样吗?

阅读 1.9k
2 个回答

你是用的vue吗?

如果是,可能后台使用的是socket.io。所以你在前端可以使用socket.io-client,或者vue-socket.io,

原生的websocket貌似只支持ws或者wss.

而且如果后台采用的是socket.io,前台用websocket是不行的,在socket.io官网上有说

+1, webscoket接口 和 常用的 http接口 并不一样
需要后端重写, 并且调用的话:

    var websocket = new WebSocket("ws://echo.websocket.org/");
    // 监听开始状态
    websocket.onopen = function(){
        console.log("open 了");
    }
    // 监听数据获取
    websocket.onmessage = function(e){
        console.log(e.data);
    } 
    // 传递数据靠这个
    websocke.send()
推荐问题