第七步:發(fā)送數(shù)據(jù)
現(xiàn)在我們已經(jīng)有了提交按鈕,但我們還需要監(jiān)聽用戶按下鍵盤的事件,并運行send函數(shù),下面的’13′便是回車鍵對應(yīng)的ASCII碼。
$('#text').keypress(function(event) { if (event.keyCode == '13') { send(); } });
下面是send()函數(shù):
function send(){ var text = $('#text').val(); if(text==""){ message('<p class="warning">Please enter a message'); return ; } try{ socket.send(text); message('<p class="event">Sent: '+text) } catch(exception){ message('<p class="warning"> Error:' + exception); } $('#text').val(""); }
下面我們需要:
socket.send();
那些額外的代碼做了以下工作:檢測用戶是否什么都沒輸入?yún)s仍點擊返回、清空input輸入框、執(zhí)行message()函數(shù)。
第八步:關(guān)閉Socket
關(guān)閉Socket操作相當(dāng)簡單,添加對斷開連接按鈕的click事件監(jiān)聽就可以。
$('#disconnect').click(function(){ socket.close(); });
完整JavaScript代碼
$(document).ready(function() { if(!("WebSocket" in window)){ $('#chatLog, input, button, #examples').fadeOut("fast"); $('<p>Oh no, you need a browser that supports WebSockets. How about <a href="Google'>http://www.google.com/chrome">Google Chrome</a>?</p>').appendTo('#container'); }else{ //The user has WebSockets connect(); function connect(){ var socket; var host = "ws://localhost:8000/socket/server/startDaemon.php"; try{ var socket = new WebSocket(host); message('<p class="event">Socket Status: '+socket.readyState); socket.onopen = function(){ message('<p class="event">Socket Status: '+socket.readyState+' (open)'); } socket.onmessage = function(msg){ message('<p class="message">Received: '+msg.data); } socket.onclose = function(){ message('<p class="event">Socket Status: '+socket.readyState+' (Closed)'); } } catch(exception){ message('<p>Error'+exception); } function send(){ var text = $('#text').val(); if(text==""){ message('<p class="warning">Please enter a message'); return ; } try{ socket.send(text); message('<p class="event">Sent: '+text) } catch(exception){ message('<p class="warning">'); } $('#text').val(""); } function message(msg){ $('#chatLog').append(msg+'</p>'); } $('#text').keypress(function(event) { if (event.keyCode == '13') { send(); } }); $('#disconnect').click(function(){ socket.close(); }); }//End connect }//End else });
出處:彬Go
責(zé)任編輯:bluehearts
上一頁 HTML5 WebSockets基礎(chǔ)使用教程 [4] 下一頁 HTML5 WebSockets基礎(chǔ)使用教程 [6]
◎進入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|