B/S結構下如何實現socket通信
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
[p]請大家幫幫忙,我現在在做一個b/s的在線考試系統,要求學生考試時監考老師可以給學生發送消息。監考老師和學生登陸的是同一個系統。頁面不同,如何實現。謝謝了。[/p]
[p] [/p] [p]哈哈,終于搞定了,最終用的方法拿出來跟大家分享一下:[br]首先把老師要發送的消息寫到服務器上的xml文件,之所以不寫到數據庫是因為數據庫每秒鐘被學生訪問會造成服務器卡死。xml文件就沒問。[br]public void loadxml()[br] {[br] doc.load(server.mappath("~/message.xml"));[br] }[br] protected void btn_radio_click(object sender, eventargs e)[br] {[br] loadxml();[br] xmlnode nodes = doc.selectsinglenode("http://question/content");[br] nodes.innertext = tbmessage.text;[br] doc.save(server.mappath("~/message.xml"));[br][br] }[br][br]學生獲取消息時要用javascrip每一秒鐘獲取一次xml里的content節點下的消息。用javascript就不會一直刷新,獲取完就彈出,彈出后要清空xml的content節點,就不會一直彈了。下一次老師有消息寫入的時候會再次彈。[br] function selectxml()[br] {[br] try //internet explorer[br] {[br] xmldoc=new activexobject("microsoft.xmldom");[br] }[br] catch(e)[br] {[br] try //firefox, mozilla, opera, etc.[br] {[br] xmldoc=document.implementation.createdocument("","",null);[br] }[br] catch(e) {alert(e.message)}[br] }[br]try [br] {[br] xmldoc.async=false;[br] xmldoc.load("/message.xml");[br] // document.write("xmldoc is loaded, ready for use");[br] x=xmldoc.getelementsbytagname("content");[br] if(x[0].childnodes[0].nodevalue!="")[br] { [br] alert(x[0].childnodes[0].nodevalue);[br] x[0].childnodes[0].nodevalue="";[br] }[br] }[br]catch(e) [br] {[br] [br] }[br]}[br][br] settimeout("selectxml()",1000)[br][br]哈哈,騰訊用那么長時間做的webqq一下就實現了。[/p] 該文章在 2010/5/1 0:06:52 編輯過 |
關鍵字查詢
相關文章
正在查詢... |