วิธีการใช้ห้องแชทในหน้าเว็บแบบดั้งเดิมคือการบรรลุข้อมูลการแชทที่เกี่ยวข้องโดยขอให้เซิร์ฟเวอร์รับข้อมูลการแชทที่เกี่ยวข้องทุกครั้ง เนื่องจาก WebSocket อนุญาตให้การเชื่อมต่อสามารถเชื่อมต่อสำหรับการโต้ตอบข้อมูลหลังจากเชื่อมต่อเซิร์ฟเวอร์เซิร์ฟเวอร์สามารถส่งข้อมูลที่เกี่ยวข้องไปยังไคลเอนต์ได้อย่างแข็งขัน สำหรับการประมวลผล HTML5 คุณจะต้องประมวลผลข้อมูลที่ได้รับในเหตุการณ์การรับของ WebSocket หลังจากการเชื่อมต่อเสร็จสิ้น
การทำงานห้องแชทง่าย ๆ มีฟังก์ชั่นดังต่อไปนี้:
1) การลงทะเบียนลงทะเบียนเพื่อจัดการกับหลายสิ่งหลายอย่างหลังจากการลงทะเบียนเสร็จสมบูรณ์เพื่อให้ได้รายชื่อผู้ใช้ทั้งหมดของเซิร์ฟเวอร์ปัจจุบันและบริการจะส่งผู้ใช้ที่ลงทะเบียนในปัจจุบันไปยังผู้ใช้ออนไลน์รายอื่น
2) ส่งข้อมูลเซิร์ฟเวอร์ส่งข้อความที่ได้รับในปัจจุบันไปยังผู้ใช้รายอื่นออนไลน์
3) ออกเซิร์ฟเวอร์จะแจ้งผู้ใช้รายอื่นที่ตัดการเชื่อมต่อผู้ใช้ที่ถูกตัดการเชื่อมต่อ
ฟังก์ชั่นดูตัวอย่างของห้องแชทมีดังนี้:
C#รหัสด้านบริการรหัสบนเซิร์ฟเวอร์จำเป็นต้องกำหนดวิธีการหลายอย่างสำหรับหลายฟังก์ชั่นคือการลงทะเบียนการรับผู้ใช้รายอื่นและการส่งข้อมูล รหัสเฉพาะมีดังนี้:
/// <summary> /// ลิขสิทธิ์© Henryfan 2012 /// อีเมล: [email protected] /// หน้าแรก: http://www.ikende.com /// CreateTime: 2012/12/7 21:45 21:45: 25 /// </summary> ตัวจัดการคลาส {การลงทะเบียนยาวสาธารณะ (ชื่อสตริง) {tcpChannel channel = methodContext.current.channel; , ชื่อ); (); .ClientId; channel) result.add (user) item.tag);} return result;} โมฆะสาธารณะพูด (เนื้อหาสตริง) {tcpchannel channel = methodcontext.current.chanel; ; .data = st; foreach (tcpchaannel item
เฉพาะรหัสง่าย ๆ ด้านบนจะต้องทำฟังก์ชั่นของเซิร์ฟเวอร์ห้องแชท
ได้รับการปกป้องเป็นโมฆะ ovedisposed (ผู้ส่งวัตถุ, channeldisposdeventargs e) {base.ondisposed (ผู้ส่ง, e); NAME; this.server.getOnlines ()) {if (item! = e.channel) item.send (msg);}}}}}รหัสด้านบริการของการแชทเสร็จสมบูรณ์
รหัส JavaScriptสิ่งแรกที่ต้องทำสำหรับรหัส HTML5 คือการเชื่อมต่อกับเซิร์ฟเวอร์
ฟังก์ชั่นเชื่อมต่อ () {channel = new tcpchaannel (); (result.status == null || status == undefined) {$ ('#DLGCONNECT') = ฟังก์ชั่น (EVT) {$ ('#DLGCONNECT') ) {var item = getUser (result.data); .id) .remove ();} อื่นถ้า (result.type == 'say') {addSayItem (result.data);} else {}} (('#host'). val ());};ข้อความที่แตกต่างกันได้รับการจัดการผ่านจำนวนพูลการกู้คืนของการรับ กล่อง. ความช่วยเหลือของความช่วยเหลือของ jQuery นั้นง่ายมาก
กระบวนการโทรลงทะเบียนผู้ใช้:
var callregister = {url: 'handler.register', พารามิเตอร์: {ชื่อ: ''}}; ค่า '); ถ้า (isvalid) {connect ();} return false;});}รับกระบวนการรายชื่อผู้ใช้ออนไลน์:
var callist = {url: 'handler.list', พารามิเตอร์: {}}; (var i = 0; i <result.data.length; i ++) {var item = getuser (result.data [i]); );}ส่งกระบวนการข้อความ:
var callyay = {url: 'handler.say', พารามิเตอร์: {content:} ฟังก์ชั่นพูด () {callsay.parameters.content = meditor.html (); $ ('#content1') [0] .focus ();} สรุปหลังจากที่รหัสถูกห่อหุ้มแล้วการประมวลผลของ WebSocket จะง่ายมาก
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้