| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 【Web】WebSocket基础及使用 -> 正文阅读 |
|
[网络协议]【Web】WebSocket基础及使用 |
简介介绍WebSocket之前需要先了解一个更基本的协议:超文本传输协议(Hyper Text Transfer Protocol,HTTP),它是一个简单的请求——响应协议,通常运行在TCP之上。 HTTP有一个问题:单向。即只能是客户端(浏览器)向服务器发送请求,服务器返回查询结果。如果服务器状态有连续的变化,就要求客户端进行轮询,这显然是效率很低的。 WebSocket就是用来解决HTTP的这个问题的,它是一种在单个TCP连接上进行全双工通信的协议。 下图是HTTP和WebSocket协议的实现差别: WebSocket还有以下的特点:
客户端代码接口WebSocket客户端代码编写比较简单,直接通过JavaScript调用WebSocket接口即可,这里简单介绍。 构造函数
该函数返回一个 WebSocket对象。
常量
属性
方法
关闭当前链接。
对要传输的数据进行排队。 事件使用
上述事件也可以通过对应的onXXX属性来设置。 下面是一个示例:
websocketd服务器端示例这里首先使用一款简单的WebSocket服务端程序作为WebSocket服务器来与客户端通信,这款程序是websocketd,可以在http://websocketd.com/下载到,Windows下得到的程序如下: 使用websocketd的一个最简单的例子如下:
其中xxx是自己编写的程序。这个程序可以用很多的语言来编写,最主要的共同点是:输出即传输的数据。下面是一个c语言编写的例子:
注意这里的 如果直接执行该文件,就是每隔0.5秒打印一个从0开始递增的数字,结果如下: 这里将它作为websocketd.exe的参数:
这样就开起了一个WebSocket服务: 客户端编程示例WebSocket客户端最常见的就是普通的浏览器,这里编写一个HTML网页,其实现中通过JavaScript编写WebSocket代码,示例如下:
直接在浏览器中打开该文件,执行结果如下: 这里的message将每隔0.5秒打印一次,结束之后打印closed,此时WebSocket的连接也断开了。 其它以上是一个最简单的示例,该示例中传输的数据也是普通的字符,通过通用输入输出的拦截来完成传输,跟Web服务器类似。不过WebSocket还支持二进制,这个这里暂时不做演示。 另外,虽然说服务器端程序支持很多种语言,但是Python版本执行会报错: 原因不明。 另外websocketd的源码可以在https://github.com/joewalnes/websocketd下载到,它是Go语言编写的。 pywebsocket3下载pywebsocket3,下载地址是https://github.com/GoogleChromeLabs/pywebsocket3。 进入对应的目录执行构建、安装和使用: 之后通过浏览器访问: 上述显示来自pywebsocket的示例代码(通过 参考
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 7:38:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |