Persistent Connections คืออะไร ?
Persistent Connections คือ lower-level API ที่ทาง .NET สร้างขึ้นมาเพื่อติดต่อกันแบบใกล้ชิด โดยติดต่อกันในระดับชั้น (layer)ระหว่าง client กับ server แต่เนื่องจาก API ตัวนี้อยู่ในระดับ lower-level จึงไม่เหมาะเอามาใช้งานที่ complex หากต้องการนำไปใช้งานจริง ผู้เขียนแนะนำว่าให้ใช้ Hubs ในการติดต่อจะดีกว่า ส่วนสำหรับ Hubs นั้นผู้เขียนจะเขียนแนะนำในบทความ SignalR ตอนนที่ 3 โปรดติดตามต่อไป เรากลับเข้าเรื่อง Persistent Connections กันดีกว่า มาทำความรู้จักกัน ถ้าจะเริ่มเขียน ใช้งาน SignalR ควรจะทำความรู้จัก กับ เจ้าตัวนี้ก่อน เพราะการเขียน เชื่อมกัน ง่ายและไม่ซับซ้อน เข้าใจโดยง่าย โดยตัวอย่างที่จะแสดง จะแสดง การเชื่อมต่อ ระหว่าง หน้า Web และ หน้า Application มาเริ่มกันเลยดีกว่า
- Download Microsoft.AspNet.SignalR มาติดที่เครื่องเรา
- Add new item ชื่อว่า OwinStartup เข้ามา กำหนด เป็น app.MapSignalR<ChatConnection>("/chat");
- สร้าง class chat ขึ้นมา เพื่อคอยจัดการ กับ Message ที่ส่งมาจาก Client ต่างๆๆ (web and app) มาจัดการ command ที่ใช้ในการส่งหากัน โดยอาศัย javascript <script> $(function () {
connection.start().done(function () {
console.log("Connected");
$("#chatWindow").val("Connected\n");
$("#sendButton").click(function () {
connection.send($("#messageTextBox").val());
$("#messageTextBox").val("");
});
});
connection.received(function (data) {
$("#chatWindow").val($("#chatWindow").val() + data + "\n");
});
});
มาจัดการฝั่ง App สร้างโปรเจ็ตขึ้นมาใหม่ เป็นแบบ Console ล่ะกัน
เข้า Nuget download Microsoft.AspNet.SignalR.Client
แล้วเขียน CODE ดังนี้ // Connect to the service var connection = new Connection("http://localhost:47338/chat");
// Print the message when it comes in
connection.Received += data => Console.WriteLine(data);
// Start the connection
connection.Start().ContinueWith(t => Console.WriteLine("Connected")).Wait();
string line = null;
while ((line = Console.ReadLine()) != null)
{
// Send a message to the server
connection.Send(line).Wait();
}
เป็นอันเสรฦ็จ พิธี เด๋วว่างๆ จะ up รูปให่นะ ใครตามไม่ทันยังไง เขียน comment ทิ้งไว้ล่ะกัน จะปรับปรุงให้นะครับ
บายไปล่ะ