手机版

node.js中socket.io介绍示例

时间:2021-11-08 来源:互联网 编辑:宝哥软件园 浏览:

websocket等反向ajax技术介绍在实时web应用中,常用的方法是反向Ajax。反向Ajax的定义(反向Ajax本质上是一个可以将数据从服务器发送到客户端的概念。在标准的HTTP Ajax请求中,数据被发送到服务器。反向Ajax可以通过一些特定的方式模拟发送Ajax请求,本文将对此进行讨论。这样,服务器可以尽快向客户端发送事件(低延迟通信)。反向Ajax技术主要有两个内容:第一,服务器保持TCP连接,直到有数据要发送给客户端(可以使用loop和sleep来实现);二、客户端js编程技巧。Websocket是html5的标准,也属于反ajax技术。socket.io实现反向AJAX技术的例子socket.io官方介绍:socket.io旨在让实时应用在每个浏览器和移动设备中成为可能,模糊不同传输机制之间的差异。它在JavaScript中是100%免费的实时。为了在每个浏览器上提供实时连接,套接字。IO在运行时选择最有能力的传输,而不影响应用编程接口。WebSocket Adobe Flash Socket ajax Long Polling Ajax Multipart Streaming Forever Frame JSONP Polling简单来说,socket.io是一个基于nodejs的库,它封装了多种反向Ajax技术,统一了接口。运行时,socket.io会根据浏览器条件自动选择合适的反向ajax技术与socket.io服务器进行交互。如果websocket和其他技术是标准的,那么socket.io就是一个应用程序。下面介绍如何安装(作者使用Linux Mint 16):安装node.js:复制代码如下:sudo apt-get install nodejs输入命令nodejs进入shell模式。安装npm:复制代码如下: sudo apt-get install NPM install socket . io:复制代码如下:sudo npm install socket.io安装包存储在~/node_modules目录下。client socket.io.js存储在目录~/node _ modules/socket . io/node _ modules/socket . io-client/dist中。Socket.io示例以下示例来自官方网站,经过适当修改。首先,构建服务器(server)代码(file test.js):复制代码如下: vario=require ('socket.io ')。听(8080);io.sockets.on('connection ',function(socket){ socket . emit(' news ',{ hello : ' world ' });socket.on('my other event ',function(data){ console . log(data);});});Test.js与端口8080绑定。当客户端连接到test.js时,test.js向客户端发送新闻指令并传输数据{ hello : ' world ' };而服务器test.js将调用回调函数(data) {console。当它收到我另一个事件指令时记录(数据);}处理接收到的数据。作者构建了nginx服务器,使用80个端口,web根目录为/usr/share/nginx/html。将~/node _ modules/socket . io/node _ modules/socket . io-client/dist下的socket.io.min.js复制到web根目录下,在web根目录下建立文件index.php(作为客户端)。内容如下:复制的代码如下: HTML Head/Head script src=' http : socket . io . min . js '/scriptbodyscript var socket=io . connect(' http://localhost :8080 ');socket.on('news ',function(data){ console . log(data);console.log(数据[' hello ']);socket.emit('my other event ',{ my : ' data ' });});/script/body/html在上面的代码中,socket被绑定到端口8080,也就是server。Socket.on()指定接收到新闻指令时如何处理接收到的指令对应的数据,socket.emit()向服务器发送指令和数据。服务器端:复制代码如下:$ nodejs test.js运行客户端观察:打开浏览器,输入http://127.0.0.1访问index.php,打开firebug查看信息。

上图来自firebug,显示客户端index.php在连接到server test.js后,从server test.js收到了数据{hello:'world'}.同时,我们可以看到index.php的访问服务器的网站不是简单的http://localhost:8080。

上图显示了服务器test.js的处理过程.

上图显示了客户端index.php第一次发送给服务器test.js的http头。

上图显示了客户端index.php第二次发送给服务器test.js的http头。使用websocket规范。

当服务器test.js关闭时,在客户端index.php中有许多异常状态(红色字母)。分析结束。

版权声明:node.js中socket.io介绍示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。