iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >HTML5中的WebSocket API怎么用
  • 841
分享到

HTML5中的WebSocket API怎么用

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

本篇内容介绍了“HTML5中的websocket api怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成

本篇内容介绍了“HTML5中的websocket api怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、html5 中的 WEBSocket API 是个什么东东?

WebSocket API是下一代客户端-服务器的异步通信方法。该通信取代了单个的tcp套接字,使用ws或wss协议,可用于任意的客户端和服务器程序。WebSocket目前由W3C进行标准化。WebSocket已经受到Firefox 4、Chrome 4、Opera 10.70以及Safari 5等浏览器的支持。

WebSocket API最伟大之处在于服务器和客户端可以在给定的时间范围内的任意时刻,相互推送信息。WebSocket并不限于以ajax(或XHR)方式通信,因为Ajax技术需要客户端发起请求,而WebSocket服务器和客户端可以彼此相互推送信息;XHR受到域的限制,而WebSocket允许跨域通信。

Ajax技术很聪明的一点是没有设计要使用的方式。WebSocket为指定目标创建,用于双向推送消息。

二、HTML5 中的 WebSocket API 的用法

只专注于客户端的API,因为每个服务器端语言有自己的API。下面的代码片段是打开一个连接,为连接创建事件监听器,断开连接,消息时间,发送消息返回到服务器,关闭连接。

复制代码

代码如下:

// 创建一个Socket实例

var socket = new WebSocket('ws://localhost:8080');

// 打开Socket

socket.onopen = function(event){

// 发送一个初始化消息

socket.send('I am the client and I/'m listening!');

// 监听消息

socket.onmessage = function(event){

console.log('Client received a message',event);

};

// 监听Socket的关闭

socket.onclose = function(event){

console.log('Client notified socket has closed',event);

};

// 关闭Socket....

//socket.close()

};

让我们来看看上面的初始化片段。参数为URL,ws表示WebSocket协议。onopen、onclose和onmessage方法把事件连接到Socket实例上。每个方法都提供了一个事件,以表示Socket的状态。

onmessage事件提供了一个data属性,它可以包含消息的Body部分。消息的Body部分必须是一个字符串,可以进行序列化/反序列化操作,以便传递更多的数据。

WebSocket的语法非常简单,使用WebSockets是难以置信的容易……除非客户端不支持WebSocket。IE浏览器目前不支持WebSocket通信。如果你的客户端不支持WebSocket通信,下面有几个后备方案供你使用:

Flash技术 —— Flash可以提供一个简单的替换。 使用Flash最明显的缺点是并非所有客户端都安装了Flash,而且某些客户端,如iPhone/iPad,不支持Flash。

AJAX Long-Polling技术 —— 用AJAX的long-polling来模拟WebSocket在业界已经有一段时间了。它是一个可行的技术,但它不能优化发送的信息。也就是说,它是一个解决方案,但不是最佳的技术方案。

由于目前的IE等浏览器不支持WebSocket,要提供WebSocket的事件处理、返回传输、在服务器端使用一个统一的API,那么该怎么办呢?幸运的是,Guillermo Rauch创建了一个Socket.IO技术。

三、带Socket.IO的WebSocket

Socket.IO是Guillermo Rauch创建的WebSocket API,Guillermo Rauch是LearnBoost公司的首席技术官以及LearnBoost实验室的首席科学家。Socket.IO使用检测功能来判断是否建立WebSocket连接,或者是AJAX long-polling连接,或Flash等。可快速创建实时的应用程序。Socket.IO还提供了一个nodejs API,它看起来非常像客户端API。

建立客户端Socket.IO

Socket.IO可以从GitHub下载,可以把socket.io.js文件包含到页面中:

复制代码

代码如下:

<script src="Http://cdn.socket.io/stable/socket.io.js"></script>

此时,Socket.IO在此页面上是有效的,是时候创建Socket了:

复制代码

代码如下:

// 创建Socket.IO实例,建立连接

var socket= new io.Socket('localhost',{

port: 8080

});

socket.connect();

// 添加一个连接监听器

socket.on('connect',function(){

console.log('Client has connected to the server!');

});

// 添加一个连接监听器

socket.on('message',function(data){

console.log('Received a message from the server!',data);

});

// 添加一个关闭连接的监听器

socket.on('disconnect',function(){

console.log('The client has disconnected!');

});

// 通过Socket发送一条消息到服务器

function sendMessageToServer(message){

socket.send(message);

}

Socket.IO简化了WebSocket API,统一了返回运输的API。传输包括:

WebSocket

Flash Socket

AJAX long-polling

AJAX multipart streaming

IFrame

JSONP polling

你还可以设置任意的Socket.IO构造器的第二个选项,选项包括:

port - 待连接的端口

transports - 一个数组,包含不同的传输类型

transportOptions - 传输的参数使用的对象,带附加属性

Socket.IO还提供了由本地WebSocket API提供的普通连接、断开连接、消息事件。Socket还提供了封装每个事件类型的方法。

四、nodeJS和Socket.IO联合开发

Socket.IO提供的服务器端解决方案,允许统一的客户端和服务器端的API。使用Node,你可以创建一个典型的HTTP服务器,然后把服务器的实例传递到Socket.IO。从这里,你创建连接、断开连接、建立消息监听器,跟在客户端一样。

一个简单的服务器端脚本看起来如下:

复制代码

代码如下:

// 需要HTTP 模块来启动服务器和Socket.IO

var http= require('http'), io= require('socket.io');

// 在8080端口启动服务器

var server= http.createServer(function(req, res){

// 发送HTML的headers和message

res.writeHead(200,{'Content-Type': 'text/html' });

res.end('<h2>Hello Socket Lover!</h2>');

});

server.listen(8080);

// 创建一个Socket.IO实例,把它传递给服务器

var socket= io.listen(server);

// 添加一个连接监听器

socket.on('connection', function(client){

// 成功!现在开始监听接收到的消息

client.on('message',function(event){

console.log('Received message from client!',event);

});

client.on('disconnect',function(){

clearInterval(interval);

console.log('Server has disconnected');

});

});

你可以运行服务器部分,假定已安装了NodeJS,从命令行执行:

node socket-server.js

现在客户端和服务器都能来回推送消息了!在NodeJS脚本内,可以使用简单的javascript创建一个定期消息发送器:

复制代码

代码如下:

// 创建一个定期(每5秒)发送消息到客户端的发送器

var interval= setInterval(function(){

client.send('This is a message from the server! ' + new Date().getTime());

},5000);

服务器端将会每5秒推送消息到客户端

五、dojox.Socket和Socket.IO

Persevere的创建者Kris Zyp创建了dojox.Socket。dojox.Socket以Dojo库一致的方式封装了WebSocket API,用于在客户端不支持WebSocket时,使用long-polling替代。

下面是怎样在客户端使用dojox.Socket和在服务器端使用Socket.IO的例子:

复制代码

代码如下:

var args, ws= typeof WebSocket!= 'undefined';

var socket= dojox.socket(args= {

url: ws? '/socket.io/websocket' : '/socket.io/xhr-polling',

headers:{

'Content-Type':'application/x-www-urlencoded'

},

transport: function(args, message){

args.content = message;// use URL-encoding to send the message instead of a raw body

dojo.xhrPost(args);

};

});

var sessionId;

socket.on('message', function(){

if (!sessionId){

sessionId= message;

args.url += '/' + sessionId;

}else if(message.substr(0, 3)== '~h~'){

// a heartbeat

}

});

dojox.socket.Reconnect还创建了在套接字失去连接时自动重连。期待包含dojox.Socket的Dojo 1.6版本早日发布。

六、实际应用和WebSocket资源

有很多WebSocke的实际应用。WebSocket对于大多数客户机-服务器的异步通信是理想的,在浏览器内聊天是最突出的应用。WebSocket由于其高效率,被大多数公司所使用。

“HTML5中的WebSocket API怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: HTML5中的WebSocket API怎么用

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

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

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • HTML5中的WebSocket API怎么用
    本篇内容介绍了“HTML5中的WebSocket API怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2024-04-02
  • HTML5中WebSocket API的用法示例
    这篇文章主要介绍了HTML5中WebSocket API的用法示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、什么是WebSocket...
    99+
    2024-04-02
  • WebSocket API怎么使用
    这篇文章主要介绍“WebSocket API怎么使用”,在日常操作中,相信很多人在WebSocket API怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WebSoc...
    99+
    2024-04-02
  • HTML5中的postMessage API怎么用
    今天就跟大家聊聊有关HTML5中的postMessage API怎么用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。关于postMessagewin...
    99+
    2024-04-02
  • html5中Notification API怎么用
    这篇文章主要介绍html5中Notification API怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!用户权限想要向用户显示通知消息,需要获取用户权限,而相同的域名只需要获...
    99+
    2024-04-02
  • html5中WebSocket有什么用
    小编给大家分享一下html5中WebSocket有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是 WebSocket...
    99+
    2024-04-02
  • HTML5中的Communication API怎么使用
    本篇内容介绍了“HTML5中的Communication API怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2024-04-02
  • 怎么利用html5的websocket实现websocket聊天室
    小编给大家分享一下怎么利用html5的websocket实现websocket聊天室,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!     什么是websocket ...
    99+
    2024-04-02
  • 怎么在HTML5中使用WebSocket协议
    怎么在HTML5中使用WebSocket协议?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。WebSocket介绍传统的http也是一种协议,WebSocket是...
    99+
    2023-06-09
  • HTML5中的WebSocket是什么
    这篇文章主要介绍“HTML5中的WebSocket是什么”,在日常操作中,相信很多人在HTML5中的WebSocket是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HT...
    99+
    2024-04-02
  • HTML5的FileWriter API怎么用
    本文小编为大家详细介绍“HTML5的FileWriter API怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML5的FileWriter API怎么用”文章能帮助大家解决疑惑,下面跟着小编的思...
    99+
    2024-04-02
  • HTML5的Canvas API怎么用
    这篇文章主要介绍“HTML5的Canvas API怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML5的Canvas API怎么用”文章能帮助大家解决问题...
    99+
    2024-04-02
  • 如何在HTML5中使用WebSocket
    本篇文章给大家分享的是有关如何在HTML5中使用WebSocket,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。客户端代码:<html><head>&l...
    99+
    2023-06-09
  • HTML5全屏API怎么用
    本篇内容主要讲解“HTML5全屏API怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5全屏API怎么用”吧! FullScreen API 是一...
    99+
    2024-04-02
  • 怎么在HTML5中使用websocket实现直播功能
    这篇文章给大家介绍怎么在HTML5中使用websocket实现直播功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。录像页面HTML结构<video autoplay id="sou...
    99+
    2023-06-09
  • 怎么在HTML5项目中使用FileSystem API
    怎么在HTML5项目中使用FileSystem  API?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。HTML5的强大之一就是允许web程序申请一些临时或者永久的...
    99+
    2023-06-09
  • html5中api指的是什么
    html5中api指的是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在html5中,api是“application programmi...
    99+
    2024-04-02
  • 如何利用html5的websocket实现websocket聊天室
    这篇文章主要讲解了“如何利用html5的websocket实现websocket聊天室”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用html5的we...
    99+
    2024-04-02
  • 怎么在HTML5中使用WebSocket实现一个聊天室
    本篇文章给大家分享的是有关怎么在HTML5中使用WebSocket实现一个聊天室,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1)注册注册要处理几个事情,分别是注册完成后获取当...
    99+
    2023-06-09
  • h5中的Websocket怎么用
    这篇文章将为大家详细讲解有关h5中的Websocket怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是 WebSocketWebSocket的服务端和客户端可以...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作