| |
|
开发:
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后,我觉得与http请求类似,不过websocket可以实现在客服端向服务器发一次请求之后,就会建立一个不会中断的通讯,这样实现聊天室就不需要像http请求那样,你需要隔一段时间就向服务器发一次请求,询问是否有发给我的消息。
??????? H5中提供了websocket的API,我们可以直接使用。 主要就是四部曲: 1、创建websocket(这里有一个问题,我参考资料中websocket服务地址使用的是ws://echo.websocket.org,但我使用的时候报了个错,貌似是被拦截器拦截了,没有找到解决办法,所以直接使用的自己本地创建的websocket的服务地址,本篇后面也会介绍如何创建一个简单的本地的websocket服务)
2、注册一个open事件,在连接创建时触发的事件
3、注册一个send事件,发送数据给服务器
4、注册一个message事件,接收服务器数据
????????这样客户端(浏览器)简单的流程就走完了,接下来就是搭建一个本地的websocket服务。
?????????这里我是用的方式是用nodejs-websocket进行搭建,使用说明文档地址:?ddwsnodejs-websocket - npm 按照官方的教程进行搭建就可以。 1、首先我们需要安装nodejs-websocket的依赖
2、创建一个server.js,引入nodejs-websocket包
3、创建一个server
????????这里有一个需要注意的地方,注册close事件时,也需要将error事件注册,因为发生close事件时,会发生异常,若没有注册error事件,服务器就会停止运行。 4、将接收到的数据发送给所有人(广播)
?这样一个简单的websocket服务器就搭建完成了。 下面把两个完整的代码贴出来
?
????????命令提示符进入到server.js的目录下,node .\server.js,然后打开index.html即可 ?????????这篇只是完成了一个最简单的聊天室功能,聊天历史记录、区分消息类型、定位到最新一条消息、发送图片表情等都没有实现,接下来就是按着微信聊天对功能进行优化。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/15 20:33:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |