
广播服务器
在这个例子里,
宁波网站建设认为我们使用WebSocket进行通信,通过一个套接字(socket)建立活动连接,将输入的文本传送给所有的客户端。该WebSocket通过套接字活动连接将已输人的文本传输至所有客户端。这并非一个实际上的Internet聊天程序,但用来测试WebSockets的交互功能非常适合。图展示了4个联网的客户端如何在彼此之间交换信息。
广播客户端
在HTML代码中,我们只需要创建一个文本区域用来输入信息。为了充分演示WebSocket的性能,我们要将输人的每一个字符都即时发送给所有已连接用户。为达到此目的,我们使用了oninput事件,并为每次按键调用函数sendmsgO,这一点还将在稍后进行分析:
〈h2〉Broadcastmessages〈/h2〉
〈textareaaccesskey=toninput="sendmsgO;"onfocus="select0"rows=5cols=40id=taplaceholder="Pleaseinsertyourmessage"〉
〈/textarea〉
〈divid=broadcastx/div〉
〈pid=statusxpid=debug〉
JavaScript的开头使用了此前介绍过的函数$(),从jQuery库借用。在整个文档完成加载同时,WebSocket被初始化并指向变量ws。在此例中,我们通过特殊端口7使用服务器html5.komplett.cc。服务器被标识为一个URL,协议简写为ws://。与SSL编码(即加密,译者注)的HTTPS类似,WebSocket也拥有一个编码信道,以协议方式通过wss://调用,不过这里我们仍然采用未编码的通信方式。URL中的路径/be跟WebSocket服务器没什么关系,只是这个示例所使用到的地址而已(更多服务器相关资料见节)。
function$(a){returndocument.getElementById(a);}
varws,currentUser,ele;
window.onload=functionQ{
ws=newWebSocket("ws://html5*komplett.cc:7/bc");ws.onopen=function(){$("status"innerHTML=’online’;
$("status").style.color='creen';ws.onmessage=function(e){varmsg;try{msg=DSON.parse(e.data);}catch(SyntaxError){
$("debuf).innerHTML="invalidmessage";returnfalse;}
一旦连接成功建立,将激活WebSocket上的onopen事件。一个匿名函数会将绿色的“online”字符串写到HTML文档结尾处的状态行中。每当WebSocket收到信息,它都将激活oumessage事件。函数中变量e的data属性包含了服务器发送的载荷数据。在此例中,数据通过jSON.parse被转换为〗avaScript对象,这也意味着服务器必须发送JSON字符串。若转换失败,函数将中止,相关错误信息将显示在HTML页面上。
本文由乐华网络编辑,转载请注明出处
宁波网站建设www.leseo.net