我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么利用html5的websocket实现websocket聊天室

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么利用html5的websocket实现websocket聊天室

小编给大家分享一下怎么利用html5的websocket实现websocket聊天室,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

    什么是websocket

    WebSocket协议是html5日期的一种新的协议,其目的在于实现了浏览器与服务器全双工通信。看了上面的链接的同学肯定对过去怎么低效率高消耗(从而或comet)的做此事已经有所了解了,而在websocketAPI中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。同时这样做有两个好处1.通信传输字节减少:比起以前使用http传输数据,websocket传输的额外信息很少,据百度说只有2k2.服务器可以主动向客户端推送消息,而不用客户端去查询关于概念和好处,网上到处都是,不再多余述,简单看看其原理,然后动手写一个网站版聊天室吧握手

    除了TCP连接的三次握手,websocket协议中客户端与服务器想建立连接需要一次额外的握手动作,在最新版本的协议中是这个样子的客户端向服务器发送请求

    复制代码

    代码如下:

    GET/HTTP/1.1升级:websocket连接:升级主机:127.0.0.1:8080来源:http://test.com语法:无缓存缓存控制:无缓存Sec-WebSocket-密钥:OtZtd55qBhJF2XLNDRgUMg==Sec-WebSocket-版本:13Sec-WebSocket扩展:x-webkit-deflate-frame用户代理:Mozilla/5.0(Macintosh;IntelMacOSX10_9_0)AppleWebKit/537.36(KHTML,例如Gecko)Chrome/31.0.1650.57Safari/537.36

    服务器定义响应

    复制代码

    代码如下:

    HTTP/1.1101交换协议升级:websocket连接:升级Sec-WebSocket-接受:xsOSgr30aKL2GNZKNHKmeT1qYjA=

    在请求中的“Sec-WebSocket-Key”是随机的,服务器端会用这些数据来构造出一个SHA-1的信息摘要。把“Sec-WebSocket-Key”加上一个魔幻字符串“258EAFA5-E914-47DA-95CA-C5AB0DC85B11”。使用SHA-1加密,之后进行BASE-64编码,将结果做为“Sec-WebSocket-Accept”头的值,返回给客户端(来自维基百科)。websocketAPI

    通过web浏览器的API真心很简单,看看W3C的定义

    复制代码

    代码如下:

    枚举BinaryType{“blob”,“arraybuffer”};[Constructor(DOMStringurl,可选(DOMString或DOMString[])协议))接口WebSocket:EventTarget{只读属性DOMStringurl;//就绪状态constunsignedshortCONNECTING=0;constunsignedshortOPEN=1;constunsignedshortCLOSING=2;constunsignedshortCLOSED=3;只读属性unsignedshortreadyState;readonly属性unsignedlongbufferedAmount;//联网属性EventHandleronopen;属性EventHandleronerror;属性EventHandleronclose;只读属性DOMString扩展;

    只读属性DOMString协议;voidclose([Clamp]可选的无符号短代码,可选的DOMString原因);//消息传递属性EventHandleronmessage;属性BinaryTypebinaryType;无效send(DOMStringdata);无效send(Blob数据);无效send(ArrayBufferdata);无效send(ArrayBufferViewdata);};

    创建websocket

    复制代码

    代码如下:

    ws=newWebSocket(address);//ws://127.0.0.1:8080

    调用其构造函数,预期地址,就可以创建一个websocket了,称为的是地址协议得是ws/wss关闭socket

    复制代码

    代码如下:

    ws.close();

    调用webservice实例的close()方法就可以关闭webservice,当然也可以引发一个代码和字符串说明为什么关了几个变量函数句柄而引起其初始化执行,从而函数自然少不了,有四个重要的onopen:连接创建后调用消息:接收到服务器消息后调用错误:错误时调用onclose:关闭连接的时候调用

    看名字就知道是干什么的了,每个其他函数都会预定一个事件对象,可以通过event.data访问消息使用API我们可以在创建套接字成功后为其设置函数赋值

    复制代码

    代码如下:

    ws=newWebSocket(address);ws.onopen=function(e){varmsg=document.createElement('div');msg.style.color='#0f0';msg.innerHTML=“服务器>连接打开。”;msgContainer.appendChild(msg);ws.send('{<'+document.getElementById('name')。value+'>}');

    也可以通过事件绑定的方式

    复制代码

    代码如下:

    ws=newWebSocket(address);ws.addEventListener('open',function(e){varmsg=document.createElement('div');msg.style.color='#0f0';msg.innerHTML=“Server>connectionopen。”;msgContainer。appendChild(msg);ws.send('{<'+document.getElementById('name')。value+'>}');

    客户端实现其实客户端的实现比较简单,除了websocket相关的几句就是一些自动聚焦,回车键事件处理,消息框自动定位到底部等简单功能,不一一说明了

看完了这篇文章,相信你对“怎么利用html5的websocket实现websocket聊天室”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么利用html5的websocket实现websocket聊天室

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

golang websocket聊天室怎么实现

要实现一个golang的websocket聊天室,可以遵循以下步骤:导入所需的包:import ("fmt""log""net/http""github.com/gorilla/websocket")定义一个websocket连接的upg
golang websocket聊天室怎么实现
2024-02-29

怎么在HTML5中使用WebSocket实现一个聊天室

本篇文章给大家分享的是有关怎么在HTML5中使用WebSocket实现一个聊天室,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1)注册注册要处理几个事情,分别是注册完成后获取当
2023-06-09

怎么在HTML5中利用WebSocket实现点对点聊天

这期内容当中小编将会给大家带来有关怎么在HTML5中利用WebSocket实现点对点聊天,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先在系统启动的时候调用InitServlet方法public cla
2023-06-09

利用php和Websocket开发聊天室功能

利用PHP和Websocket开发聊天室功能引言:随着互联网的迅猛发展,聊天室已经成为人们日常交流和社交的重要手段之一。利用PHP和Websocket技术开发一个聊天室功能可以实现实时的双向通信,为用户提供更流畅便捷的聊天体验。本文将介绍如
利用php和Websocket开发聊天室功能
2023-12-09

PHP+Socket之如何实现websocket聊天室

这篇文章主要介绍了PHP+Socket之如何实现websocket聊天室的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP+Socket之如何实现websocket聊天室文章都会有所收获,下面我们一起来看看吧
2023-07-05

Node.js websocket使用socket.io库实现实时聊天室

认识websocket WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duple)。一开始的握手需要借助HTTP请求完成。 其实websocket 并不是很依赖Http协议,它也
2022-06-04

基于websocket如何实现聊天室对话

这篇文章主要介绍了基于websocket如何实现聊天室对话,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下首先搭建一个node的环境,在app.js中写入以下代码n
2023-06-20

安卓android+WebSocket实现简易QQ聊天室

本篇仅介绍实现聊天室的前端,也就是安卓端代码,后端的实现看链接说明 链接说明 1.后端使用了spring boot 框架,若不熟悉,有关spring boot 入门教程请戳此链接使用Intellij IDEA开发第一个spring boot
2022-06-06

SpringBoot整合WebSocket实现聊天室流程全解

WebSocket协议是基于TCP的一种新的网络协议。本文将通过SpringBoot集成WebSocket实现简易聊天室,对大家的学习或者工作具有一定的参考学习价值,感兴趣的可以了解一下
2023-01-04

SpringBoot+WebSocket怎么实现在线聊天

本篇内容主要讲解“SpringBoot+WebSocket怎么实现在线聊天”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot+WebSocket怎么实现在线聊天”吧!在线聊天使用
2023-06-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录