web前端如何及时接受后台实时推送的数据 并做方法操作

Mando
  • 199

原因:后台添加今日消息,储存到后台,前台页面接收到后台推送来的消息进行及时更新?

除了轮询方式,还有其他方式可以进行前台浏览器数据及时更新吗?
Websocket吗,求各位指导一下实例用法吧,(W3C,菜鸟已经看过了还是不太会用) 或者还有其他的方式吗
回复
阅读 11.2k
2 个回答
攻城狮Lee丶
  • 2.8k
✓ 已被采纳

推荐socket,但是原生socket无法兼容ie6~9。

SockJS(全兼容方案)是一个JavaScript库,它为浏览器提供了一个类似WebSocket的对象。首先,它会优先使用原生的WebSocket;如果不支持,则使用streaming;如果streaming(不支持ie6~7)也不支持,则使用轮询(polling)。

so https://github.com/sockjs/soc...

//首先加载SockJS库
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/sockjs.min.js"></script>


//复制代码库加载完后, 就可与SockJS服务器建立连接了
var sock = new SockJS('https://www.baidu.com/test');
 sock.onopen = function() {
     console.log('open');
     sock.send('test');
 };

 sock.onmessage = function(e) {
     console.log('message', e.data);
     sock.close();
 };

 sock.onclose = function() {
     console.log('close');
 };

Derek
  • 3
新手上路,请多包涵

可以用websocket,主要的就是这样

socket = new WebSocket(url);

// 打开websokcet
socket.open = () => { console.log("已打开") };

// 接收信息
socket.onmessage = (data) => { console.log(`收到的信息:${data}`) };

// 关闭
socket.onclose = () => { console.log("关闭") };

// 出错
socket.onerror = () => { console.log("出错") };
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏