| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 对 Websocket 完全不懂,但又想搞个聊天室,行吗? -> 正文阅读 |
|
[网络协议]对 Websocket 完全不懂,但又想搞个聊天室,行吗? |
Websocket 的客户端并没有什么技术难点,就是浏览器 API 调用。只要你把通信机制够清楚,这玩意就没有不会,因为非常简单,我们直接选择纯手写就可以了,如果你想使用 Websocket-Node 客户端,确实还会更简单。 Websocket 服务端与客户端实现经过前面对通信过程的梳理,我们将 WebSocket 通信的基本机制已经说的差不多了,为了方便你快速进入实战阶段,我们暂时放弃纯手写实现,直接选择使用老牌的 WebSocket 库: WebSocket-Nodehttps://github.com/theturtle32/WebSocket-Node 简单介绍一下 WebSocket-Node,它有多老牌呢? NPM 的包名字就是直接使用的 “WebSocket”。曾经,我们西岭老湿看到之后就给出了两个字的评价:“猖狂”。 这个库完全使用 JavaScript 实现,包含了客户端及服务端的实例。其中,客户端包含了 Node 和 浏览器 两个运行环境的代码,除了支持我们前面提到的 Websocket 协议的 13 版本,它同时还支持 Websocket 协议 8 这个老版本,实属优秀。 接下来,我们就来看看,如何借助 Websocket-Node 实现一个 Websocket 服务。 服务端安装 npm install websocket 后,创建服务器运行文件 ws-server.js ,代码如下,请认真阅读代码及注释:
过多的描述,就不写了,据说,长得好看的都会看代码注释(●’?'●) 运行代码文件后,不出意外的情况下,命令行进程会被占用,监听端口也会被占用,证明服务端运行成功。如果两个都没被占用,想啥呢?失败了呀宝子…… 如果服务器启动成功,我怎么用客户端建立链接查看呢?有一款 Websocket 客户端工具叫 WebsocketMan,如果感兴趣,你可以下载来试试。 但是像我这样的帅哥,一般都是自己写客户端:) 客户端Websocket 的客户端并没有什么技术难点,就是浏览器 API 调用。只要你把通信机制够清楚,这玩意就没有不会,因为非常简单,我们直接选择纯手写就可以了,如果你想使用 Websocket-Node 客户端,确实还会更简单。 当然,在写之前,还是要去看看手册的,要不然你怎么知道有哪些 API 呢? 来,手册地址给你:https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket 你先看着,我就不客气,直接开干……
过多的描述,就不写了,据说,长得好看的都会看代码注释(●’?'●) 至此,一个完整的 websocket 通信已经建立完成并能够进行双向通信了。 Websocket-Node 确实很好用,但是功能也确实比较单一了,需要你对 WebSocket 机制有一定的理解之后,才能实现相应的能力。如果,我对 websocket 完全不懂,但又想搞个聊天室,能不能行? 指!定!能!行! Socket.IO一个目前最为强大且好用的,基本屏蔽了 websocket 概念的 websocket 库。你几乎不用掌握 websocket 相关的知识,只需要按照 Socket.IO 中提供的 API 就能够很好的实现一个 websocket 通信。 注意:程序员要“除机心”。
服务端
客户端
没什么可解释的,就直接按照 Socket.IO 的 API 写就完事了。 |
|
网络协议 最新文章 |
使用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 4:43:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |