HTML5-WEB-Socket(WEB插座)

HTML5新特性之十——WebSocket

HTTP协议:是基于“请求-响应”模型的协议,客户端发起一个请求,服务器就要返回一个响应,请求消息和响应消息是一一对应的!没有请求就没有响应!在一些特别的应用场景下(如实时走势图,在线聊天室),只能使用“定时器+AJAX”不停的向服务器发起请求以获得最新的数据——“心跳请求”,解决方案并不完美:心跳过快服务器压力过大,过慢导致数据实时性差。

WebSocket协议:是基于“广播-收听”模型的协议,只要客户端连接到服务器上,就不再断开,一方可以发送多条消息,对方只接收而不发送,可以解决上述应用中的问题。这个协议本身的问题:客户端与服务器是“永久连接”,导致服务器可以同时连接的客户端数是有限的!

基于WebSocket协议的应用必需两套程序:

(1)服务器端程序:                

       可使用PHP、Java、Node.js等语言编写

       注意:PHP编写的WebSocket服务器独立运行的,无需依赖Apache!

       c:/xampp/php/php.exe  e:/socket_server.php

       记得修改php.ini文件的907行!去掉开头的分号

       extension=php_sockets.dll

(2)客户端程序:

       可使用PHP、Java、HTML5/JavaScript等语言编写

    使用HTML5提供的WebSocket对象创建WS客户端:

       var wsClient = new WebSocket('ws://地址:端口');

       wsClient.onopen = function(){      //连接成功

              ws.send('msg');                    //发送消息

              ws.onmessage = function(e){  //接收消息

                     //e.data

              }

       }

WebSocket是一种新的通讯协议,与HTTP协议不同,是基于“广播-收听”模型的协议,适用于一些特殊的应用场合,如聊天室、实时走势获取

 

posted @ 2017-01-07 14:45  时间脱臼  阅读(180)  评论(0)    收藏  举报