Push Mail บน Windows Mobile

เป็นที่รู้กันว่า BlackBerry ขึ้นชื่อเรื่อง Push Mail ที่ทำงานได้รวดเร็ว แต่ในขณะเดียวกัน ก็ใช่ว่าจะมีแต่ BlackBerry ที่ใช้งาน Push Mail ได้ แพลตฟอร์มอื่นเช่น Windows Mobile, iPhone, Android หรือ Symbian ก็ใช้ได้เช่นกัน (ส่วนมือถือญี่ปุ่น รองรับการใช้ Push Mail เป็นมาตรฐานมาตั้งแต่ปี 2000 !)

ระบบ Push ของ BlackBerry ถ้าผมจำไม่ผิดคือจะเป็น Push แบบ Push จริงๆ คือเมล์เข้าก็ถีบต่อมาให้เครื่องเราเลย (คงคล้ายๆ SMS)

ผมเคยใช้ Push Technology หลักๆอยู่ 2 แบบ คือผ่าน IMAP IDLE ที่ Email Client (ในที่นี้คือ Opera Mail) ซึ่งผมก็ไม่ทราบเหมือนกันว่ามันทำงานอย่างไร (อ้าว เวรกรรม…) แต่พอทราบคร่าวๆว่ามันจะเชื่อมต่อกับ Server ตลอด แล้วก็รอ notification จาก Server ว่า เออ มีเมล์ใหม่ของแกเข้ามานะ

กับอีกรูปแบบที่ผมเคยใช้ นั่นคือ Direct Push Technology ที่มีให้ใช้บน Windows Mobile กันทุกเครื่อง ตั้งแต่ Windows Mobile 5 AKU2 ขึ้นไป (และอีกหลายแพลตฟอร์มที่รับผ่านทางนี้ได้เช่นกัน เช่น iPhone, Symbian, Android) แต่หากจะว่าไป มันก็ไม่เชิงว่าเป็น Push สักเท่าไหร่นัก คือจะมีลักษณะเป็น long-polling เสียมากกว่า

สงสัยใช่ไหมว่า long-polling มันคืออะไร

ปกติแล้วเวลาเรารับเมล์เนี่ย เราจะใช้วิธีไปดึงอีเมล์มาจากเซิร์ฟเวอร์ตามเวลาที่เราตั้งเอาไว้ (จะผ่าน POP3 หรือ IMAP4 ก็ว่ากันไป) ซึ่งพอเชื่อมต่อไปปุ๊บ ไคลเอ็นท์ก็จะถามเซิร์ฟเวอร์ว่า “แกมีเมล์ของฉันหรือเปล่า ” ทางเซิร์ฟเวอร์ก็จะไปคุ้ยๆ ดูในฐานข้อมูล ถ้ามีเมล์ก็จะตอบกลับมา “เออ มีเมล์ของแกอยู่นะ” แล้วก็ส่งเมล์กลับไปให้ไคลเอ็นท์ แต่ถ้าไม่มีอีเมล์ใหม่ ก็จะตอบกลับไป “ไม่มีอีเมล์ใหม่หรอก” ไคลเอ็นก็เดินหน้าจ๋อยกลับบ้านไป

นี่แหละ polling…

สำหรับ long-polling จะต่างออกไป ลักษณะของมันคือไคลเอ็นโรคจิต และเซิร์ฟเวอร์ที่ปฏิเสธไม่เป็น

ไคลเอ็นท์จะไปร้องถามกับเซิร์ฟเวอร์ ว่า “แกมีเมล์ของฉันหรือเปล่า ” ทางเซิร์ฟเวอร์ก็จะไปคุ้ยๆ ดูใน ฐานข้อมูล ถ้ามีก็บอกกลับไปว่า “เออ มีเมล์ของแกอยู่นะ” แล้วก็ส่งเมล์กลับไปให้ไคลเอ็นท์

หลายคนคุ้น ใช่ มันก็มาจากไอ้ตอน polling นั่นแหละ แล้วมันต่างกันอย่างไร

ต่างกันตรงนี้ครับ คือถ้ามันไม่มีเมล์ใหม่ เซิร์ฟเวอร์ก็อึกอักๆ ไม่ตอบคำร้องขอ แล้วก็ปล่อยให้ไคลเอ็นท์ีรอไปอยู่อย่างนั้น แกรอไปเหอะั แล้วทีนี้พอได้เมล์เข้ามา เซิร์ฟเวอร์ถึงเสนอหน้ากลับไปตอบไคลเอ็นท์ว่า “เออ มีเมล์ของแกอยู่นะ” แล้วก็ส่งเมล์กลับไปให้ไคลเ็อ็นท์

ทีนี้ก็เป็นเรื่องของไคลเอ็นท์โรคจิต พอได้เมล์มาแล้ว มันก็เป็นพวกอีเมล์ลิซึม มันก็ร้องถามกลับไปที่เซิร์ฟเวอร์ทันทีว่า “แกมีเมล์ของฉันหรือเปล่า ” ซึ่งเซิร์ฟเวอร์มันก็จะย้อนกลับไปทำเหมือนย่อหน้าข้างบนนั่นแหละ วนไปเรื่อยๆ

การกระทำแบบนี้ ทำให้การตอบสนองระหว่างไคลเอ็นท์และเซิร์ฟเวอร์เมื่อมีเมล์เข้า จะมีลักษณะเป็น real-time มากขึ้น ซึ่งหากเราจะเรียกว่า “ระบบ Push แบบเสมือน” ก็ไม่ผิดสักเท่าไหร่นัก

Posted by Jirayu

WordPress Developer ที่พอมีประสบการณ์อยู่บ้าง วันไหนไม่ทำงานอยู่บ้านว่างๆ ก็นั่งเลี้ยงแมว

Comments