ว่าด้วยเรื่องการทำ Realtime App
อะไรคือการทำ Realtime App ?
เทคนิคต่างๆในการทำ Realtime App
1. Polling คือการ Send Request และยิงตาม Period ที่ตั้งเอาไว้ เช่น ตั้งค่าในการใช้ Polling ทุกๆ 1 นาที ระบบจะทำการ Send Request ทุก 1 นาที
- Pros: สามารถทำตามได้ง่าย
- Cons: ใช้ทรัพยากรเยอะ เนื่องจากจะมีการยิง Request ตามช่วงเวลาที่กำหนด โดยหากมีผู้ใช้งานเป็นจำนวนมาก จะทำให้ระบบต้องรองรับจำนวน Request มากเกินความจำเป็น
![](https://new-dev.codium.co/uploads/7687388b1420a0c2a5fd0e15c24016a2aea90575df5253bd7c676cb43c43d9d4a00c5f0fc03ebfbd1862438b2d4e055a0bb41ddfff3d2e32ae754928083c6b3f2e62e318655cbccff97134793b8affeaf382593e1de0bd2adb1d686dcbe66456ee4f31e3_22a64baaaf.png)
2. Long Polling คล้ายกับการทำงานแบบ Polling ที่กล่าวไปข้างต้น แต่มีการเพิ่มการหน่วงเวลาทางฝั่ง Backend ภายใต้เงื่อนไขที่ว่าต้องมีข้อความใหม่ก่อน จึงจะดำเนินการส่งกลับได้
- Pros: ใช้ทรัพยากรน้อยกว่าแบบ Polling เนื่องจากไม่ต้องยิง Request ตามรอบเวลาที่กำหนด
- Cons: มีความเสี่ยงที่จะทำให้เกิดเชื่อมต่อมีข้อผิดพลาด (Connection Timeout) ได้ง่าย จึงทำให้ข้อมูลหาย เนื่องจากไม่มีการส่งข้อมูลกลับไป
![](https://new-dev.codium.co/uploads/7f262a37eaccb846a2c11701ece1cfd59a910cfcfc673a171e5c9eade5f7751221a41253993aab4c0f9e8bb06153a7fe7da3b46680c2d352edb2c90313caa80e34da96b1b3d3132365ccdcf90932240de63839be137b75c440197bfb627cf8e753d63039_8654985f18.png)
3. Web Sockets จะเป็นการทำงานอยู่บน Socket ที่เป็น Connection แบบ TCP (Transmission Control Protocol) รองรับการทำงานแบบ Bidirectional Communication หรือการสื่อสารแบบสองทิศทาง
- Pros: ทำงานได้เร็วที่สุด เเละ มี Library ที่ครอบคลุมเกือบทุกภาษา
- Cons: ต้อง Handle การทำงานค่อนข้างเยอะ และ อาจมีปัญหาที่ตามมาเยอะเช่นกัน
![](https://new-dev.codium.co/uploads/ef79e99599b42b8cabcaa3e858d2e190e77dd6a4a73da7833e854643c15c47069a5092405aa6855934e48f4309694f8c2bd89680051585d49d696d3ea6db863e202815ae93abdf2f8a17c8f768d459c9494f56c2d7dbc14bc124c17915e2891c0e56d378_cd41fd4d06.png)
4. Server-Sent Event (SSE) ทำงานคล้ายๆกับ Web Socket แต่จะเป็นการทำงานแบบ Unidirectional คือการส่งข้อมูลด้านเดียว และได้ Response หรือการส่งกลับตามที่ตั้งค่าไว้ใน Code
- Pros:
- 1.ใช้งานได้ง่าย
- 2.มี Data Efficiency สูง
- 3.ในกรณีที่มีปัญหาไม่สามารถ Connect ได้ สามารถดำเนินการ Reconnect ได้ทันที
- 4.ประหยัด Source กว่า Short และ Long Polling
- 5.เขียนง่ายไม่ต้องใช้ Library
- Cons: ไม่รอบรับการทำงานบน Internet Explorer
![](https://new-dev.codium.co/uploads/1530aebce189cb54216a161a1d883cb8fea96d62c8798263aeeaae4dd1eac1f3ab775be121a3abf1e005e580847ba882d46c015a873de9417bdb1c81a4e4c39a2f7b207627cd46ea091e1ff262d3655fe0e2c314c619832d90f253376f5328bb3d5d9920_deb04c6348.png)
การใช้งาน Server-Sent Event กับ Django
ตอน Send Event จะมีการส่งค่า “Type” มาด้วย ดังนั้นหาก Type ไม่ตรงก็จะไม่เข้า Listener
เมื่อเข้า Web Portal และมีการยิง Request จะมาการสร้าง Event ขึ้นมา
![](https://new-dev.codium.co/uploads/image_78d128e454.png)
![](https://new-dev.codium.co/uploads/image_1_85d0c83c99.png)
![Low Code Framework ทำงานอย่างไร?](https://new-dev.codium.co/uploads/image_1_e865bdc3ad.png)
![วิธีสร้าง Chatbot ในแบบฉบับง่ายๆ ไม่ใช่ คนTech ก็ทำได้](https://new-dev.codium.co/uploads/image_3_6100a5eaf6.png)
![HR Bot สร้างขึ้นมาได้อย่างไร](https://new-dev.codium.co/uploads/CDM_website_Create_Hr_e862ae0e6c.png)
![5 ปัจจัยหลัก ที่ใช้ประเมินการทำงาน Developer](https://new-dev.codium.co/uploads/CDM_website_34_2x_3ebfba92be.png)
![hero](/images/bg-subscribe.png)