IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> c++ libwebsocket库应用开发3 -> 正文阅读

[网络协议]c++ libwebsocket库应用开发3

web 端接收二进制图像数据与文本数据显示部分


<html>
<head>
? ? <title>Simple client</title>

? ? <script type="text/javascript">
? ? ? ? var wsFrameData; // 图像传输ws
? ? ? ? var wscontrol; //设备控制
? ? ? ? var img
?? ??? ?var icount = 0
? ? ? ? // var img = new Image();
? ? ? ? // var c, ctx;
? ? ? ? var urlCreator = window.URL || window.webkitURL
? ? ? ? var createObjectURL = urlCreator.createObjectURL
? ? ? ? var revokeObjectURL = urlCreator.revokeObjectURL
? ? ? ? var lastFrame = null
? ? ? ? var updateFrame = function () {
? ? ? ? ? ? img.src = createObjectURL(lastFrame)

? ? ? ? }

? ? ? ? function init() {
? ? ? ? ? ? img = document.querySelector('#player')
? ? ? ? ? ? img.onload = function (e) {
? ? ? ? ? ? ? ? var img = e.target
? ? ? ? ? ? ? ? var url = img.src
? ? ? ? ? ? ? ? revokeObjectURL(url)
?? ??? ??? ??? ?lastFrame = null
?? ??? ??? ??? ??? ??? ??? ?
? ? ? ? ? ? };

? ? ? ? ? ? wsFrameData = new WebSocket("ws://127.0.0.1:9005/newtoken=a2abd43dfooepcxw");
? ? ? ? ? ? // Set event handlers.
? ? ? ? ? ? wsFrameData.onopen = function () {
? ? ? ? ? ? ? ? output("wsFrameData onopen");
? ? ? ? ? ? };

?? ??? ??? ? ?// Connect to Web Socket to open senser
?? ??? ??? ? ?wscontrol = new WebSocket("ws://127.0.0.1:9006/newtoken=a2abd43dfooepcxw");
?? ??? ??? ? ?// Set event handlers.
?? ??? ??? ? ?wscontrol.onopen = function() {
?? ??? ??? ??? ?output("wscontrol onopen ");
?? ??? ??? ? ?};


? ? ? ? ? ? wsFrameData.onmessage = function (e) {
?? ??? ??? ?icount = icount+1;
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? var timestamp = parseInt(new Date().getTime() / 1000);
? ? ? ? ? ? ? ? if (typeof (e.data) == "string") {
? ? ? ? ? ? ? ? ? ? output("onmessage: " + e.data +" icount:" + icount);
? ? ? ? ? ? ? ? } else {
?? ??? ??? ??? ??
?? ??? ??? ??? ? //output("icount:" + icount + " stamp:" + timestamp);
? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? // web浏览器会将二进制数据在传输过程加入base64编解码。
? ? ? ? ? ? ? ? ? ? // var reader = new FileReader();
? ? ? ? ? ? ? ? ? ? // reader.onload = function(e){
? ? ? ? ? ? ? ? ? ? // ?? ?if(e.target.readyState == FileReader.DONE){
? ? ? ? ? ? ? ? ? ? //
? ? ? ? ? ? ? ? ? ? // ?? ??? ?console.log('**********');
? ? ? ? ? ? ? ? ? ? //
? ? ? ? ? ? ? ? ? ? // ?? ??? ?var url = e.target.result;
? ? ? ? ? ? ? ? ? ? //
? ? ? ? ? ? ? ? ? ? // ?? ??? ?var text_value=url.replace("application/octet-stream","image/jpg");
? ? ? ? ? ? ? ? ? ? //
? ? ? ? ? ? ? ? ? ? // ?? ??? ?var img = document.getElementById("player");
? ? ? ? ? ? ? ? ? ? // ?? ??? ?//img.innerHTML = "<img src = "+text_value+" />";
? ? ? ? ? ? ? ? ? ? // ?? ??? ?img.src = text_value;
? ? ? ? ? ? ? ? ? ? // ?? ?}
? ? ? ? ? ? ? ? ? ? // }
? ? ? ? ? ? ? ? ? ? // reader.readAsDataURL(e.data);

? ? ? ? ? ? ? ? ? ? if (!lastFrame) {
? ? ? ? ? ? ? ? ? ? ? ? requestAnimationFrame(updateFrame)
? ? ? ? ? ? ? ? ? ? }

// 下面的方式将二进制数据交给了image.src
? ? ? ? ? ? ? ? ? ? lastFrame = e.data
? ? ? ? ? ? ? ? }

? ? ? ? ? ? };

? ? ? ? ? ? wsFrameData.onclose = function (e) {
? ? ? ? ? ? ? ? output("onclose");
?? ??? ??? ??? ?console.log('websocket 断开: ' + e.code + ' ' + e.reason + ' ' + e.wasClean);
?? ??? ??? ??? ?console.log(e)
? ? ? ? ? ? };
? ? ? ? ? ? wsFrameData.onerror = function (e) {
? ? ? ? ? ? ? ? output("onerror");
? ? ? ? ? ? ? ? console.log(e)
? ? ? ? ? ? };
?? ??? ??? ?
?? ??? ??? ?wscontrol.onclose = function () {
? ? ? ? ? ? ? ? output("wscontrol onclose");
? ? ? ? ? ? };
? ? ? ? ? ? wscontrol.onerror = function (e) {
? ? ? ? ? ? ? ? output("wscontrol onerror");
? ? ? ? ? ? ? ? console.log(e)
? ? ? ? ? ? };
? ? ? ? }


? ? ? ? function onSubmit() {

? ? ? ? ? ? var input = document.getElementById("input");
? ? ? ? ? ? // You can send message to the Web Socket using ws.send.
? ? ? ? ? ? var timestamp = parseInt(new Date().getTime() / 1000);

? ? ? ? ? ? wsFrameData.send(input.value);
? ? ? ? ? ? output("send: " + input.value + " stamp:" + timestamp);
? ? ? ? ? ? input.value = "";
? ? ? ? ? ? input.focus();
? ? ? ? }

? ? ? ? function onCloseClick1() {
? ? ? ? ? ? wsFrameData.close();
?? ??? ??? ? ? ??
?? ??? ??? ?wscontrol.close();
?? ??? ??? ??? ??
? ? ? ? }
? ? ? ? function onOpenClick() {
?? ??? ?icount = 0;
? ? ??? ??? ? var json = '{"Send": "Browser","PrtcType": "DevCtrl","Command": "LaserCtrl","Attach": "ON", "TimeStamp": "YYY"}';
?? ??? ? ?wscontrol.send(json);
?? ??? ? ? output("send: " + input.value );
? ? ? ? ? ? input.value = "";
? ? ? ? ? ? input.focus();
? ? ? ? }
? ? ? ? function onCloseClick() {
?? ??? ?icount = 0;
? ? ??? ??? ? var json = '{"Send": "Browser","PrtcType": "DevCtrl","Command": "LaserCtrl","Attach": "OFF", "TimeStamp": "YYY"}';
?? ??? ? ?wscontrol.send(json);
?? ??? ? ? output("send: " + input.value );
? ? ? ? ? ? input.value = "";
? ? ? ? ? ? input.focus();
? ? ? ? }

? ? ? ? function output(str) {
? ? ? ? ? ? var log = document.getElementById("log");
? ? ? ? ? ? var escaped = str.replace(/&/, "&amp;").replace(/</, "&lt;").replace(/>/, "&gt;").replace(/"/, "&quot;"); // "
? ? ? ? ? ? log.innerHTML = str;
? ? ? ? }
? ? </script>

</head>
<body onLoad="init();">
<form onSubmit="onSubmit(); return false;">
? ? <input type="text" id="input">
? ? <input type="submit" value="Send">
? ? <button onClick="onCloseClick1(); return false;">close</button>
</form>
?
?<button onClick="onOpenClick(); return false;">OpenSenser</button>
?<button onClick="onCloseClick(); return false;">CloseSenser</button>
?

<div id="log"></div>

<img id="player" style="width:704px;height:576px"/>
<!--<canvas id="myCanvas" style="float:left;border:1px solid #c3c3c3" width="1280" height="960"></canvas>-->

</body>
</html>

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-09 19:59:31  更:2021-11-09 20:01:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:57:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码