แอปพลิเคชันแชทที่ใช้ Django ในพื้นที่นี้ให้ความสามารถในการสื่อสารแบบเรียลไทม์ระหว่างเบราว์เซอร์ที่แตกต่างกัน ผู้ใช้สามารถลงทะเบียนเข้าสู่ระบบและมีส่วนร่วมในการสนทนากับผู้ใช้รายอื่นผ่านเว็บอินเตอร์เฟส แอปพลิเคชันใช้ช่อง Django สำหรับการจัดการการเชื่อมต่อ WebSocket ทำให้การสื่อสารแบบอะซิงโครนัส
การส่งข้อความแบบเรียลไทม์: สร้างแพลตฟอร์มสำหรับผู้ใช้บนเบราว์เซอร์หลายตัวเพื่อแลกเปลี่ยนข้อความแบบเรียลไทม์โดยไม่ต้องรีเฟรชหน้า การรับรองความถูกต้องของผู้ใช้: ใช้การรับรองความถูกต้องของผู้ใช้เพื่อให้แน่ใจว่าเข้าถึงฟังก์ชั่นการแชทได้อย่างปลอดภัย
เทมเพลต HTML: กำหนดโครงสร้างของหน้าเว็บรวมถึงการเข้าสู่ระบบการลงทะเบียนและอินเทอร์เฟซแชท CSS Styling: เพิ่มความน่าดึงดูดและประสบการณ์การใช้งานของผู้ใช้ผ่านสไตล์ที่กำหนดเอง JavaScript (AJAX): จัดการคำขอแบบอะซิงโครนัสสำหรับการส่งและรับข้อความโดยไม่รบกวนส่วนต่อประสานผู้ใช้
Django Framework: ให้อำนาจเซิร์ฟเวอร์แบ็กเอนด์, การจัดการการรับรองความถูกต้องของผู้ใช้, การกำหนดเส้นทางและการดำเนินการฐานข้อมูล ช่อง Django: สำหรับการเชื่อมต่อ WebSocket สำหรับการสื่อสารแบบเรียลไทม์ระหว่างลูกค้า Python: ใช้ฟังก์ชั่นตรรกะทางธุรกิจและแบ็คเอนด์รวมถึงการจัดการข้อความและการจัดการผู้ใช้
Class ChatConsumer (AsyncWebsocketConsumer): ที่นี่เรากำลังสร้างชั้นเรียนชื่อ ChatConsumer ซึ่งสืบทอดมาจาก AsyncWebsocketConsumer และใช้ในการสร้างทำลายและทำสิ่งต่าง ๆ อีกสองสามอย่างด้วย WebSockets และที่นี่เรากำลังสร้าง Chatsocket เพื่อจุดประสงค์ที่จำเป็น
Async def Connect (Self): ฟังก์ชั่นนี้ใช้งานได้บนอินสแตนซ์ WebSocket ซึ่งถูกสร้างขึ้นและเมื่อการเชื่อมต่อเปิดหรือสร้างมันเชื่อมต่อและยอมรับการเชื่อมต่อ มันสร้างชื่อกลุ่มสำหรับห้องแชทและเพิ่มกลุ่มลงในกลุ่มเลเยอร์ช่อง
async def disconnect (): นี่เพียงแค่ลบอินสแตนซ์ออกจากกลุ่ม
async def รับ (): ฟังก์ชั่นนี้ถูกทริกเกอร์เมื่อเราส่งข้อมูลจาก WebSocket (เหตุการณ์สำหรับการทำงานนี้คือ: ส่ง) สิ่งนี้จะได้รับข้อมูลข้อความที่ได้รับการแปลงเป็นรูปแบบ JSON (เหมาะสำหรับ JavaScript ) หลังจากได้รับ text_data แล้วจะต้องกระจายไปยังอินสแตนซ์อื่น ๆ ที่ใช้งานอยู่ในกลุ่ม เราดึงพารามิเตอร์ข้อความซึ่งถือข้อความและพารามิเตอร์ชื่อผู้ใช้ซึ่งถูกส่งโดยซ็อกเก็ตผ่าน HTML หรือ JS ข้อความนี้ที่ได้รับจะถูกแพร่กระจายไปยังอินสแตนซ์อื่น ๆ ผ่านวิธี channel_layer.group_send () ซึ่งใช้อาร์กิวเมนต์แรกเป็นชื่อ roomgroupname ซึ่งกลุ่มที่อินสแตนซ์นี้เป็นของและสถานที่ที่ต้องส่งข้อมูล จากนั้นอาร์กิวเมนต์ที่สองคือพจนานุกรมที่กำหนดฟังก์ชันที่จะจัดการการส่งข้อมูล (“ ประเภท”:“ SendMessage”) และพจนานุกรมมีข้อความตัวแปรที่เก็บข้อมูลข้อความ
async def sendmessage (self, event): ฟังก์ชั่นนี้ใช้อินสแตนซ์ที่ส่งข้อมูลและเหตุการณ์โดยทั่วไปเหตุการณ์จะเก็บข้อมูลที่ถูกส่งผ่านวิธีการ group_send () ของฟังก์ชันรับ () จากนั้นจะส่งข้อความและพารามิเตอร์ชื่อผู้ใช้ไปยังอินสแตนซ์ทั้งหมดที่ใช้งานอยู่ในกลุ่ม และมันถูกทิ้งในรูปแบบ JSON เพื่อให้ JS สามารถเข้าใจสัญกรณ์ JSON เป็นรูปแบบ (Notation Object JavaScript)
ผู้ใช้สามารถลงทะเบียนสำหรับบัญชีใหม่โดยให้รายละเอียดที่จำเป็น ผู้ใช้ที่มีอยู่สามารถเข้าสู่ระบบโดยใช้ข้อมูลรับรองของพวกเขา
การแชท:
เมื่อตรวจสอบสิทธิ์ผู้ใช้สามารถเข้าถึงอินเทอร์เฟซแชทได้ พวกเขาสามารถส่งและรับข้อความแบบเรียลไทม์กับผู้ใช้รายอื่นที่ลงชื่อเข้าใช้เบราว์เซอร์ที่แตกต่างกัน ข้อความจะปรากฏขึ้นแบบไดนามิกโดยไม่จำเป็นต้องรีเฟรชหน้า
โคลนที่เก็บจาก GitHub ติดตั้งการพึ่งพาที่ต้องการโดยใช้ PIP Install -r required.txt เรียกใช้การโยกย้ายโดยใช้ Python managem.py โยกย้าย เริ่มต้นเซิร์ฟเวอร์การพัฒนา Django ด้วย Python Manage.py Runserver
ลงทะเบียนสำหรับบัญชีใหม่หรือเข้าสู่ระบบด้วยข้อมูลรับรองที่มีอยู่ ตั้งค่าผู้ใช้สองหรือสามคนบน webBrowsers ที่แตกต่างกัน (ตัวอย่างเช่นหนึ่งใน FireForx หนึ่งใน Chrome และอีกหนึ่งบน Microsoft Edge) เริ่มการสนทนาโดยพิมพ์ข้อความในกล่องอินพุตแชท ข้อความจะถูกส่งไปยังผู้ใช้รายอื่นทันทีในห้องแชทในท้องถิ่นเดียวกัน
มุมมอง: จัดการคำขอ HTTP และแสดงเทมเพลต HTML ที่เหมาะสม รุ่น: กำหนดสคีมาฐานข้อมูลรวมถึงการตรวจสอบสิทธิ์ของผู้ใช้และที่เก็บข้อความ แบบฟอร์ม: จัดการอินพุตผู้ใช้สำหรับฟังก์ชันการลงทะเบียนและเข้าสู่ระบบ ผู้บริโภค: ใช้ WebSocket ผู้บริโภคโดยใช้ช่อง Django สำหรับการจัดการข้อความแบบเรียลไทม์
ใช้การเข้ารหัสข้อความเพื่อความปลอดภัยที่ดีขึ้น สำรวจตัวเลือกความสามารถในการปรับขนาดสำหรับการจัดการฐานผู้ใช้ขนาดใหญ่ โฮสต์แอปพลิเคชันออนไลน์บนเว็บไซต์อย่างใด (ความปลอดภัยจะต้องมีความสำคัญสูงกว่ามาก)