WebSocket协议版本的经常更换以及WebSocket技术的前景不用多说,未来绝非Http的世界,WebSocket的真正出场的时候,是浏览器端支持并且得到普及的时候。
相信那个时候,人们惊叹的发现,当年模拟全双工的Ajax技术,完全是欺骗感情。真正的实时全双工通讯,B/S架构如同C/S架构,乃Websocket!!
话不投机半句多,假若你对WebSocket不熟悉,那么请查看一下网站阅读协议规范。
WebSocket W3C : http://dev.w3.org/html5/websockets/
W3C官网 : http://www.w3.org/
Draft 网站 : http://tools.ietf.org/id/websocket
本文针对自己 用c++开发的简单支持http以及WebSocket服务器(支持协议13版本),在浏览器端使用HTML5的WebSocket API函数,进行了测试。谷歌浏览器版本是Chrome_18.0.1025.162_XiaZaiBa,以下代码通过通用的API接口,实现把消息推送到服务器,而服务把传送的信息推送回客户端。当然,这里可以知道,这服务器调用的模块功能是浏览器端推送什么数据,服务器返回什么数据。通过这简单的测试则可以看出服务器主动推送能力的强大。
Code:
<script type="text/javascript">
var host = '192.168.0.112';
var port = 80;
var url = 'ws://'+host+':'+port+'/'+'websocket'+'/';
var w = new WebSocket(url);
//var test = new arry();
document.write('建立了websocekt请求,等待到服务器......');
w.onopen = function(){
document.write('连接到服务器......');{
w.send("广工大老师好!");
}
}
//w.binaryType = "log";
w.onmessage = function(e){
w.send(e.data);
document.write('<br> 发送成功......<br>');
//for (i=0; i<data.length(); i++)
document.write(e.data);
}
/*
w.onclose = function(){
document.write('关闭链接......');
}
*/
</script>
浏览器的代码实现简单,毕竟这是一个简单的测试。倘若要实现庞大的消息推送,则需要在服务器端做很多功夫。
要等其协议真正标准化么?或者使用现在的Socket.io库,在X86平台用Node.JS实现如此简单。那有没有想过,倘若
修改目前最强大的轻量级web服务器--Ngnix,扩展WebSocket模块。那样则不用这么费事儿,并且容易维护。