วันศุกร์ที่ 29 สิงหาคม พ.ศ. 2557

SignalR ตอนที่ 1

วันนี้เรามาทำความรู้จัก กับ SignalR กันดีก่า

SignalR คืออะไร ?

SignalR คือ library หนึ่ง ของ ASP.NET ที่เอาไว้จัดการงานแบบ Realtime โดยเขียน Code ไว้ในส่วนกลางแล้ว มี Client มา Connect Register ลงทะเบียนเอาไว้ แล้วเมื่อมี User มาแจ้ง update ข้อมูล Code ที่ถูกเขียนไว้ในส่วนกลางจะทำหน้าที่รับและกระจายข้อมูลไปยัง ทุกๆ Client ที่ได้มีการลงทะเบียนไว้

SignalR เหมาะสำหรับงานประเภทไหน โดยส่วนตัวแล้วผู้เขียนคิดว่า SignalR เหมาะสำรับงานแบบที่ต้องการความ Realtime ในการ display data ยกตัวอย่าง เช่น
  1. งานประเภท logistics ในการรับข้อมูลพิกัด lat long แล้วนำวาดบนแผนที่
  2. งานประเภท Business แสดง Graph ข้อมูลแบบ Realtime
  3. งานประเภท Networks Monitor ไว้แสดงข้อมูล ปริมาณ traffic การใช้งานข้อมูล
  4. งานประเภท Chat Program ไว้คุยกันผ่านหน้า Web
ในการใช้งาน library SignalR นั้น เราสามารถใช้งานผ่าน SignalR API ที่ทาง .NET ได้เตรียมไว้ให้ โดยการสร้าง remote procedure connection (RPC) ด้วยการเรียก javascript function ในส่วนของ client browser หรือจะเป็นการ connect แบบ Server to Server โดยผ่าน code จาก asp.net แบบ server-side .NET code โดยสามารถใช้งานผ่าน dll ที่ทาง .NET ได้จัดเตรียมไว้ให้

SignalR และ WebSocket
SignalR ใช้เทคโนโลยี WebSocket ในการส่งผ่านข้อมูลออกไปให้ปลายทางที่ available พร้อมรับข้อมูล และส่งผ่านกลับอีกครั้งเมื่อมีความจำเป็นต้องเรียกอีกครั้ง โดยที่ทาง developer ไม่ต้องเขียน code implement เอง code ในส่วนนี้ได้ถูกจัดการให้อย่างพร้อมใช้งาน ที่สำคัญ code ที่ถูกเขียนขึ้นจะไม่ต้องกังวลเกี่ยวกับการเขียนเรียกเส้นทาง (Path) ของแต่ละ client ที่ Register เอาไว้ เพราะว่า SignalR จะทำการค้นหาและ Update ข้อมูลปลายทางของเครื่อง Client ที่รับข้อมูลโดยอัตโนมัติ

ด้วยเหตุผลที่กล่าวมาข้างต้น ไม่มีเหตุผลเลยที่ทำไม เราถึงจะไม่เลือกใช้ SignalR มา apply ในงานของเรา แล้วคุณจะรู้สึกสนุก ชอบในความง่ายและหลงรัก ใน SignalR