返回顶部
首页 > 资讯 > 前端开发 > JavaScript >HTML5 Web Sockets的介绍以及应用
  • 752
分享到

HTML5 Web Sockets的介绍以及应用

2024-04-02 19:04:59 752人浏览 八月长安
摘要

这篇文章给大家介绍HTML5 WEB Sockets的介绍以及应用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。html 5之中一个很酷的新特性就是Web Sockets介绍通过PHP

这篇文章给大家介绍HTML5 WEB Sockets的介绍以及应用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

html 5之中一个很酷的新特性就是Web Sockets

介绍通过PHP环境的服务器端运行Web Socket,创建客户端并通过Web Sockets协议发送和接收服务器端信息。

什么是Web Sockets?

Web Sockets是在一个(tcp)接口进行双向通信的技术,PUSH技术类型。同时Web Sockets仍将基于W3C标准,目前为止,Chrome和Safari的***版本浏览器已经支持Web Sockets了。

Web Sockets将会替代什么?

Web Sockets可以替代Long Polling(php服务端推送技术),这是一个有趣的概念。客户端发送一个请求到服务器,现在,服务器端并不会响应还没准备好的数据,它会保持连接的打开状态直到***的数据准备就绪发送,之后客户端收到数据,然后发送另一个请求。

这有它的好处:减少任一连接的延迟,当一个连接已经打开时就不需要创建另一个新的连接。但是Long-Polling并不是什么花俏技术,他仍有可能发生请求暂停,因此会需要建立新的连接。

一些ajax应用使用上述技术-这经常是归因于低资源利用。试想一下,如果服务器在早晨会自启动并发送数据到那些希望接收而不用提前建立一些连接端口的客户端,这是一件多棒的事情啊!欢迎来到PUSH技术的世界!

***步:搞定Web Socket服务器

文章会把更多的精力放在客户端的创建而不是服务器端的执行等操作。作者使用的是基于windows 7的XAMPP来实现本地运行PHP。

启动Apache服务器

HTML5 Web Sockets的介绍以及应用

第二步:修改URLs和端口  

根据你之前的安装修改服务器,下面是setup.class.php中的例子:

public function __construct($host='localhost',$port=8000,$max=100)           $this->createSocket($host,$port);

浏览文件并在适当情况下进行更改。

第三步:开始创建客户端  

下面来创建基本模板,这是我的client.php文件:

 <!DOCTYPE html>    <html>    <head>    <script src="Http://ajax.Googleapis.com/ajax/libs/Jquery/1.4.2/jquery.min.js"></script>        <title>Web Sockets Client</title>        </head>    <body>    <div id="wrapper">            <div id="container">                <h2>Web Sockets Client</h2>                <div id="chatLog">                </div><!-- #chatLog -->            <p id="examples">e.g. try 'hi', 'name', 'age', 'today'</p>                <input id="text" type="text" />            <button id="disconnect">Disconnect</button>            </div><!-- #container -->        </div>    </body>    </html>

我们已经创建里基本模板:一个chat log容器,一个input输入框和一个断开连接的按钮。

第四步:添加一些CSS  

没什么花俏代码,只是处理一下标签的样式。

 body {        font-family:Arial, Helvetica, sans-serif;    }    #container{        border:5px solid grey;        width:800px;        margin:0 auto;        padding:10px;    }    #chatLog{        padding:5px;        border:1px solid black;    }    #chatLog p {        margin:0;    }    .event {        color:#999;    }    .warning{        font-weight:bold;        color:#CCC;    }

第五步:Web Socket事件

首先让我们尝试并理解Web Socket事件的概念:

HTML5 Web Sockets的介绍以及应用

◆onopen: 当接口打开时

◆onmessage: 当收到信息时

◆onclose: 当接口关闭时

我们如何来实现呢?首先创建Web Socket对象。

var socket = new Web Socket("ws://localhost:8000/socket/server/startDaemon.php");

然后向下面这样检测事件:

 socket.onopen = function(){        alert("Socket has been opened!");    }

当我们收到信息时这样做:

 socket.onmessage = function(msg){        alert(msg); //Awesome!    }

但我们还是尽量避免使用alert,现在我们可以把我们学的东西整合到客户端页面中了。

第六步:JavaScript

首先我们将代码放到jQuery 的 document.ready函数中,然后我们还要检查用户的浏览器是否支持Web Socket。如果不支持,我们就添加一个链向Chrome浏览器页面的链接。

 $(document).ready(function() {        if(!("Web Socket" in window)){            $('#chatLog, input, button, #examples').fadeOut("fast");            $('<p>Oh no, you need a browser that supports Web Sockets. How about <a href="http://www.google.com/chrome">Google Chrome</a>?</p>').appendTo('#container');        }else{            //The user has Web Sockets            connect();            function connect(){            //the connect function code is below            }    });

如你所见,如果用户浏览器支持Web Socket,我们将执行connect()函数。这里是核心功能,我们将开始创建open、close和receive事件。我们将在我们的服务器定义URL。

var socket;    var host = "ws://localhost:8000/socket/server/startDaemon.php";

你可能会发现URL中怎么没有http?恩,是的,这是一个Web Socket URL,使用了不同的协议。下面是URL分解图示:

HTML5 Web Sockets的介绍以及应用

下面让我们继续完成connect()函数,我们将代码放入try/catch块,这样如果代码出现问题,我们能让用户知道。我们创建Web Socket,并将信息传递到message()函数,之后会做讲解。我们创建我们的onopen、onmessage和onclose函数. 需要注意的是我们为用户提供了端口状态,这并不是必需的,但我们把它放进来主要是为了方便调试。

CONNECTING = 0 OPEN = 1 CLOSED = 2   function connect(){        try{            var socket;        var host = "ws://localhost:8000/socket/server/startDaemon.php";        var socket = new Web Socket(host);                message('<p class="event">Socket Status: '+socket.readyState);                socket.onopen = function(){                 message('<p class="event">Socket Status: '+socket.readyState+' (open)');            }                socket.onmessage = function(msg){                 message('<p class="message">Received: '+msg.data);            }                socket.onclose = function(){                 message('<p class="event">Socket Status: '+socket.readyState+' (Closed)');            }                       } catch(exception){             message('<p>Error'+exception);        }    }

message()函数很简单, 它将我们想展现给用户的文本填入chat log容器内。 我们在socket事件函数中为段落(<p>)标签创建适当的class,我们在message函数中只有一个段落结束标签。

 function message(msg){        $('#chatLog').append(msg+'</p>');    }

目前的成果

如果你已按上面教程按部就班的做的话,很好,我们已经创建了HTML/CSS模板、创建并建立Web Socket连接、通过创建连接保持用户的进展更新。

HTML5 Web Sockets的介绍以及应用

第七步:发送数据

现在我们已经有了提交按钮,但我们还需要监听用户按下键盘的事件,并运行send函数,下面的&rsquo;13&prime;便是回车键对应的ASCII码。

 $('#text').keypress(function(event) {        if (event.keyCode == '13') {            send();        }    });

下面是send()函数:

function send(){          var text = $('#text').val();       if(text==""){           message('<p class="warning">Please enter a message');           return ;       }       try{           socket.send(text);           message('<p class="event">Sent: '+text)       } catch(exception){       message('<p class="warning"> Error:' + exception);       }          $('#text').val("");

下面我们需要:

socket.send();

那些额外的代码做了以下工作:检测用户是否什么都没输入却仍点击返回、清空input输入框、执行message()函数。

第八步:关闭Socket

关闭Socket操作相当简单,添加对断开连接按钮的click事件监听就可以。

HTML5 Web Sockets的介绍以及应用

 $('#disconnect').click(function(){        socket.close();    });

完整JavaScript代码

 $(document).ready(function() {          if(!("Web Socket" in window)){      $('#chatLog, input, button, #examples').fadeOut("fast");      $('<p>Oh no, you need a browser that supports Web Sockets. How about <a href="http://www.google.com/chrome">Google Chrome</a>?</p>').appendTo('#container');      }else{          //The user has Web Sockets              connect();              function connect(){              var socket;              var host = "ws://localhost:8000/socket/server/startDaemon.php";                  try{                  var socket = new Web Socket(host);                      message('<p class="event">Socket Status: '+socket.readyState);                      socket.onopen = function(){                     message('<p class="event">Socket Status: '+socket.readyState+' (open)');                  }                      socket.onmessage = function(msg){                     message('<p class="message">Received: '+msg.data);                  }                      socket.onclose = function(){                    message('<p class="event">Socket Status: '+socket.readyState+' (Closed)');                  }                           } catch(exception){                 message('<p>Error'+exception);              }                  function send(){                  var text = $('#text').val();                      if(text==""){                      message('<p class="warning">Please enter a message');                      return ;                  }                  try{                      socket.send(text);                      message('<p class="event">Sent: '+text)                      } catch(exception){                     message('<p class="warning">');                  }                  $('#text').val("");              }                  function message(msg){                $('#chatLog').append(msg+'</p>');              }                  $('#text').keypress(function(event) {                  if (event.keyCode == '13') {                    send();                  }              });                     $('#disconnect').click(function(){                 socket.close();              });              }//End connect          }//End else        });

第九步:运行Web Socket服务器

我们要输入一些命令行,XAMPP提供了比较方便的shell选项。点击XAMPP控制面板的&rsquo;shell&rsquo;按钮并输入:

HTML5 Web Sockets的介绍以及应用

php -q path\to\server.php

现在你已经运行了Web Socket服务器!

大功告成!

HTML5 Web Sockets的介绍以及应用

当页面读取后,将尝试创建一个Web Socket连接,然后用户可以输入信息并从服务器接收信息。大家可以通过The Web Socket API了解HTML 5 Web Socket的***动态。

关于HTML5 Web Sockets的介绍以及应用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: HTML5 Web Sockets的介绍以及应用

本文链接: https://lsjlt.com/news/83022.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • HTML5 Web Sockets的介绍以及应用
    这篇文章给大家介绍HTML5 Web Sockets的介绍以及应用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。HTML 5之中一个很酷的新特性就是Web Sockets介绍通过PHP...
    99+
    2024-04-02
  • HTML5+CSS3的应用实例介绍
    本篇内容主要讲解“HTML5+CSS3的应用实例介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5+CSS3的应用实例介绍”吧!Web设计师可以使用H...
    99+
    2024-04-02
  • LangChain:Prompt Templates介绍及应用
    ❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但...
    99+
    2023-09-15
    人工智能 python 开发语言 chatgpt transformer
  • Python Ast介绍及应用
    Abstract Syntax Trees即抽象语法树。Ast是python源码到字节码的一种中间产物,借助ast模块可以从语法树的角度分析源码结构。此外,我们不仅可以修改和执行语法树,还可以将Source生成的语法树unparse成py...
    99+
    2023-01-30
    Python Ast
  • Python 之plt.plot()的介绍以及使用
    文章目录 介绍代码实例 介绍 plt.plot() 是Matplotlib库中用于绘制线图(折线图)的主要函数之一。它的作用是将一组数据点连接起来,以可视化数据的趋势、关系或模式。以下是...
    99+
    2023-10-23
    python 开发语言
  • MySQLShell的介绍以及安装
    目录01 ReplicaSet的架构02 MySQL Shell的介绍以及安装03 MySQL Shell连接数据库并创建ReplicaSet01 ReplicaSet的架...
    99+
    2024-04-02
  • MinIO的介绍以及简单的使用
    什么是MinIO MinIO是在GUN Affero通用公共许可证 v3.0 下发布的高性能对象存储.他与AmazonS3云存储服务API兼容.使用MinIO为机器学习,分析和应用程序数据工作负载构建高性能基础架构. MinIO是一个高...
    99+
    2023-10-26
    java Powered by 金山文档
  • SpringBoot整合JWT的介绍以及用法
    本篇内容主要讲解“SpringBoot整合JWT的介绍以及用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot整合JWT的介绍以及用法”吧!目录JWTJWT登录执行流程图为什么...
    99+
    2023-06-20
  • HTML5中SVG 蒙板及mask元素介绍与应用是怎样的
    本篇文章给大家分享的是有关HTML5中SVG 蒙板及mask元素介绍与应用是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。SVG支持的蒙...
    99+
    2024-04-02
  • HTML5中SVG 用户交互性动画介绍及应用是怎样的
    今天就跟大家聊聊有关HTML5中SVG 用户交互性动画介绍及应用是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 ...
    99+
    2024-04-02
  • HTML5拖放的特性及实例介绍
    这篇文章主要讲解了“HTML5拖放的特性及实例介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML5拖放的特性及实例介绍”吧! ...
    99+
    2024-04-02
  • html5响应式布局的详细介绍
    本篇内容主要讲解“html5响应式布局的详细介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5响应式布局的详细介绍”吧!一、什么是响应式布局 ...
    99+
    2024-04-02
  • MySQL高可用集群的介绍以及用法
    MySQL高可用集群的介绍以及用法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1 MMM概述1.1 关于mysql-mmmM...
    99+
    2024-04-02
  • MySQL Shell的介绍以及安装
    01 ReplicaSet的架构     前面的文章中,我们说了ReplicaSet的基本概念和限制以及部署前的基本知识。今天我们来看InnoDB ReplicaSet部署过程中的两个重要组件之一...
    99+
    2022-05-17
    MySQL shell MySQL shell安装
  • XpmJS的介绍以及安装过程
    XpmJS的介绍以及安装过程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、XpmJS 是啥XpmJS可以链接任何云端资源,为小程序、移动应用提供云资源通道和后端能力。降...
    99+
    2023-06-19
  • python的变量以及常量介绍
    变量概念: 把程序运行过程中产生的中间值保存在内存. 方便后面使用.    命名规范:   1. 数字, 字母, 下划线组成   2. 不能数字开头, 更不能是纯数字   3. 不能用关键字   4. 不要用中文  ...
    99+
    2023-01-30
    常量 变量 python
  • Node中的Events模块介绍及应用
    目录Node 中的 Events1. 事件和监听器2. 处理 error 事件3. 继承 Events 模块4. 手写 EventEmitterNode 中的 Events Node...
    99+
    2022-11-13
    Node Events Node Events模块
  • miniconda3介绍、安装以及使用教程
    目录简单来说conda有什么用?对于pip、conda、anaconda和miniconda的区别。安装环境配置测试安装第三方库Pycharm使用conda环境vscode使用con...
    99+
    2023-02-14
    miniconda安装 miniconda的安装与配置 miniconda安装教程
  • 强制CSS important使用介绍以及用法
    本篇文章为大家展示了强制CSS important使用介绍以及用法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 项目中遇到在css ...
    99+
    2024-04-02
  • Scrapy框架CrawlSpiders的介绍以及使用详解
    在Scrapy基础——Spider中,我简要地说了一下Spider类。Spider基本上能做很多事情了,但是如果你想爬取知乎或者是简书全站的话,你可能需要一个更强大的武器。CrawlSpider基于Spid...
    99+
    2022-06-04
    详解 框架 Scrapy
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作