博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端如何接收 websocket 发送过来的实时数据
阅读量:6294 次
发布时间:2019-06-22

本文共 1382 字,大约阅读时间需要 4 分钟。

  WebSocket protocol 是HTML5一种新的协议,它实现了浏览器与服务器全双工通信(full-duple)。刚开始的握手需要借助HTTP请求完成,在 WebSocket API,浏览器和服务器只需要做一个握手的动作,然后浏览器和服务器之间就形成了一条快速通道,两者之间就直接可以数据互相传送。

  那么前端如何通过 JS 发出 http 请求,又应该如何处理请求结果呢?在 initSocket() 函数中我们新建了三个 websocket 对象,通过调用这些 websocket 对象的内置函数实现数据的请求和接收:

initSocket();function initSocket(){  webSocket = new WebSocket('ws://'+window.location.host+'/header_soc');  imageSocket = new WebSocket('ws://'+window.location.host+'/capture_soc');  flashSocket = new WebSocket('ws://'+window.location.host+'/live_soc');  //webSocket 对象  webSocket.onerror = function (event) {      onError(event);  };  webSocket.onopen = function (event) {      onOpen(event);  };  webSocket.onmessage = function (event) {      onMessage(event);  };  //imageSocket 对象  imageSocket.onerror = function (event) {      onError(event);  };  imageSocket.onopen = function (event) {      onOpenImg(event);  };  imageSocket.onmessage = function (event) {      onMessageImg(event);  };  //flashSocket 对象  flashSocket.onerror = function (event) {      onError(event);  };  flashSocket.onopen = function (event) {      onOpenFlash(event);  };  flashSocket.onmessage = function (event) {      onMessageFlash(event);  };}

  然后定义相应的函数,发生 http 请求,接收到数据后打印出来看一下数据格式,并进行处理

function onError(event){}function onOpen(event){    webSocket.send();//看后台需要接收什么信息才能握手成功}function onMessage(event){    console.log(event);}

 

转载地址:http://ohpta.baihongyu.com/

你可能感兴趣的文章
Java中Object类的equals()和hashCode()方法深入解析
查看>>
数据库
查看>>
dojo.mixin(混合进)、dojo.extend、dojo.declare
查看>>
Python 数据类型
查看>>
iOS--环信集成并修改头像和昵称(需要自己的服务器)
查看>>
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>
教程前言 - 回归宣言
查看>>
PHP 7.1是否支持操作符重载?
查看>>
Vue.js 中v-for和v-if一起使用,来判断select中的option为选中项
查看>>
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>
Nginx配置文件详细说明
查看>>
怎么用Navicat Premium图标编辑器创建表
查看>>
Spring配置文件(2)配置方式
查看>>
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
solr-4.10.4部署到tomcat6
查看>>