B/S結(jié)構(gòu)下如何實(shí)現(xiàn)socket通信
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
[p]請(qǐng)大家?guī)蛶兔Γ椰F(xiàn)在在做一個(gè)b/s的在線考試系統(tǒng),要求學(xué)生考試時(shí)監(jiān)考老師可以給學(xué)生發(fā)送消息。監(jiān)考老師和學(xué)生登陸的是同一個(gè)系統(tǒng)。頁(yè)面不同,如何實(shí)現(xiàn)。謝謝了。[/p]
[p] [/p] [p]哈哈,終于搞定了,最終用的方法拿出來(lái)跟大家分享一下:[br]首先把老師要發(fā)送的消息寫(xiě)到服務(wù)器上的xml文件,之所以不寫(xiě)到數(shù)據(jù)庫(kù)是因?yàn)閿?shù)據(jù)庫(kù)每秒鐘被學(xué)生訪問(wèn)會(huì)造成服務(wù)器卡死。xml文件就沒(méi)問(wèn)。[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]學(xué)生獲取消息時(shí)要用javascrip每一秒鐘獲取一次xml里的content節(jié)點(diǎn)下的消息。用javascript就不會(huì)一直刷新,獲取完就彈出,彈出后要清空xml的content節(jié)點(diǎn),就不會(huì)一直彈了。下一次老師有消息寫(xiě)入的時(shí)候會(huì)再次彈。[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]哈哈,騰訊用那么長(zhǎng)時(shí)間做的webqq一下就實(shí)現(xiàn)了。[/p] 該文章在 2010/5/1 0:06:52 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |