{"id":1678,"date":"2014-12-26T09:08:00","date_gmt":"2014-12-26T09:08:00","guid":{"rendered":"http:\/\/www.rezafaisal.net\/?p=1678"},"modified":"2015-04-10T09:14:16","modified_gmt":"2015-04-10T09:14:16","slug":"asp-net-signalr-persistent-connection-example-part-2","status":"publish","type":"post","link":"https:\/\/www.rezafaisal.net\/?p=1678","title":{"rendered":"ASP.NET SignalR : Persistent Connection Example Part 2"},"content":{"rendered":"<p>Pada akan dibuat halaman chat room dengan memanfaatkan Persistent Connection. Terdapat fitur-fitur yang sedikit berbeda dengan chat room yang telah dibuat sebelumnya pada bagian Hub yang dapat dilihat pada posting <a href=\"http:\/\/www.rezafaisal.net\/?p=1664\">ASP.NET SignalR : Hub Communication Model Examples Part 2<\/a>.<\/p>\n<p>{<strong><em>Menulis Kode Program<\/em><\/strong>}<\/p>\n<p>Berbeda dengan Hub yang dapat menambahkan method pada class Hub sehingga sebuah class Hub dapat digunakan untuk berbagai keperluan, maka karena pada class Persistent Connection hanya memanfaatkan method dan fungsi yang telah disediakan menyebabnya jika ada kebutuhan yang berbeda perlu dilakukan penambahan class Persistent Connection yang baru.<\/p>\n<p>Berikut ini adalah kode class Persistent Connection untuk keperluan pembuatan chat room ini.<\/p>\n<div id=\"scid:9D7513F9-C04C-4721-824A-2B34F0212519:99747c00-6fd9-4526-a246-32cf86332185\" class=\"wlWriterEditableSmartContent\" style=\"float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px\">\n<pre style=\" width: 550px; height: 300px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;\"><div><!--\n\nCode highlighting produced by Actipro CodeHighlighter (freeware)\nhttp:\/\/www.CodeHighlighter.com\/\n\n--><span style=\"color: #008080;\"> 1<\/span> <span style=\"color: #0000FF;\">using<\/span><span style=\"color: #000000;\"> System;\n<\/span><span style=\"color: #008080;\"> 2<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">using<\/span><span style=\"color: #000000;\"> System.Collections.Generic;\n<\/span><span style=\"color: #008080;\"> 3<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">using<\/span><span style=\"color: #000000;\"> System.Linq;\n<\/span><span style=\"color: #008080;\"> 4<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">using<\/span><span style=\"color: #000000;\"> System.Threading.Tasks;\n<\/span><span style=\"color: #008080;\"> 5<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">using<\/span><span style=\"color: #000000;\"> System.Web;\n<\/span><span style=\"color: #008080;\"> 6<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">using<\/span><span style=\"color: #000000;\"> Microsoft.AspNet.SignalR;\n<\/span><span style=\"color: #008080;\"> 7<\/span> <span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\"> 8<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">namespace<\/span><span style=\"color: #000000;\"> HelloPersistent\n<\/span><span style=\"color: #008080;\"> 9<\/span> <span style=\"color: #000000;\">{\n<\/span><span style=\"color: #008080;\">10<\/span> <span style=\"color: #000000;\">    <\/span><span style=\"color: #0000FF;\">public<\/span><span style=\"color: #000000;\"> <\/span><span style=\"color: #0000FF;\">class<\/span><span style=\"color: #000000;\"> ChatRoom : PersistentConnection\n<\/span><span style=\"color: #008080;\">11<\/span> <span style=\"color: #000000;\">    {\n<\/span><span style=\"color: #008080;\">12<\/span> <span style=\"color: #000000;\">        <\/span><span style=\"color: #0000FF;\">protected<\/span><span style=\"color: #000000;\"> <\/span><span style=\"color: #0000FF;\">override<\/span><span style=\"color: #000000;\"> Task OnConnected(IRequest request, <\/span><span style=\"color: #0000FF;\">string<\/span><span style=\"color: #000000;\"> connectionId)\n<\/span><span style=\"color: #008080;\">13<\/span> <span style=\"color: #000000;\">        {\n<\/span><span style=\"color: #008080;\">14<\/span> <span style=\"color: #000000;\">            <\/span><span style=\"color: #0000FF;\">return<\/span><span style=\"color: #000000;\"> Connection.Send(connectionId, <\/span><span style=\"color: #800000;\">&quot;<\/span><span style=\"color: #800000;\">Selamat datang di chat room.<\/span><span style=\"color: #800000;\">&quot;<\/span><span style=\"color: #000000;\">);\n<\/span><span style=\"color: #008080;\">15<\/span> <span style=\"color: #000000;\">        }\n<\/span><span style=\"color: #008080;\">16<\/span> <span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\">17<\/span> <span style=\"color: #000000;\">        <\/span><span style=\"color: #0000FF;\">protected<\/span><span style=\"color: #000000;\"> <\/span><span style=\"color: #0000FF;\">override<\/span><span style=\"color: #000000;\"> Task OnReceived(IRequest request, <\/span><span style=\"color: #0000FF;\">string<\/span><span style=\"color: #000000;\"> connectionId, <\/span><span style=\"color: #0000FF;\">string<\/span><span style=\"color: #000000;\"> data)\n<\/span><span style=\"color: #008080;\">18<\/span> <span style=\"color: #000000;\">        {\n<\/span><span style=\"color: #008080;\">19<\/span> <span style=\"color: #000000;\">            <\/span><span style=\"color: #0000FF;\">return<\/span><span style=\"color: #000000;\"> Connection.Broadcast(data);\n<\/span><span style=\"color: #008080;\">20<\/span> <span style=\"color: #000000;\">        }\n<\/span><span style=\"color: #008080;\">21<\/span> <span style=\"color: #000000;\">    }\n<\/span><span style=\"color: #008080;\">22<\/span> <span style=\"color: #000000;\">}\n<\/span><span style=\"color: #008080;\">23<\/span> <span style=\"color: #000000;\"><\/span><\/div><\/pre>\n<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http:\/\/dunnhq.com --><\/div>\n<p>Agar class tersebut dapat digunakan oleh kode program pada client maka perlu ditambahkan baris berikut ini pada file Startup.cs sehingga menghasilkan kode lengkap seperti berikut ini.<\/p>\n<div id=\"scid:9D7513F9-C04C-4721-824A-2B34F0212519:a50181cb-e247-4db9-94d6-6927b23cb12a\" class=\"wlWriterEditableSmartContent\" style=\"float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px\">\n<pre style=\" width: 550px; height: 300px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;\"><div><!--\n\nCode highlighting produced by Actipro CodeHighlighter (freeware)\nhttp:\/\/www.CodeHighlighter.com\/\n\n--><span style=\"color: #008080;\"> 1<\/span> <span style=\"color: #0000FF;\">using<\/span><span style=\"color: #000000;\"> System;\n<\/span><span style=\"color: #008080;\"> 2<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">using<\/span><span style=\"color: #000000;\"> System.Threading.Tasks;\n<\/span><span style=\"color: #008080;\"> 3<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">using<\/span><span style=\"color: #000000;\"> Microsoft.Owin;\n<\/span><span style=\"color: #008080;\"> 4<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">using<\/span><span style=\"color: #000000;\"> Owin;\n<\/span><span style=\"color: #008080;\"> 5<\/span> <span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\"> 6<\/span> <span style=\"color: #000000;\">[assembly: OwinStartup(<\/span><span style=\"color: #0000FF;\">typeof<\/span><span style=\"color: #000000;\">(HelloPersistent.Startup))]\n<\/span><span style=\"color: #008080;\"> 7<\/span> <span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\"> 8<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">namespace<\/span><span style=\"color: #000000;\"> HelloPersistent\n<\/span><span style=\"color: #008080;\"> 9<\/span> <span style=\"color: #000000;\">{\n<\/span><span style=\"color: #008080;\">10<\/span> <span style=\"color: #000000;\">    <\/span><span style=\"color: #0000FF;\">public<\/span><span style=\"color: #000000;\"> <\/span><span style=\"color: #0000FF;\">class<\/span><span style=\"color: #000000;\"> Startup\n<\/span><span style=\"color: #008080;\">11<\/span> <span style=\"color: #000000;\">    {\n<\/span><span style=\"color: #008080;\">12<\/span> <span style=\"color: #000000;\">        <\/span><span style=\"color: #0000FF;\">public<\/span><span style=\"color: #000000;\"> <\/span><span style=\"color: #0000FF;\">void<\/span><span style=\"color: #000000;\"> Configuration(IAppBuilder app)\n<\/span><span style=\"color: #008080;\">13<\/span> <span style=\"color: #000000;\">        {\n<\/span><span style=\"color: #008080;\">14<\/span> <span style=\"color: #000000;\">            app.MapSignalR<\/span><span style=\"color: #000000;\">&lt;<\/span><span style=\"color: #000000;\">HelloWorld<\/span><span style=\"color: #000000;\">&gt;<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #800000;\">&quot;<\/span><span style=\"color: #800000;\">\/echo<\/span><span style=\"color: #800000;\">&quot;<\/span><span style=\"color: #000000;\">);\n<\/span><span style=\"color: #008080;\">15<\/span> <span style=\"color: #000000;\">            app.MapSignalR<\/span><span style=\"color: #000000;\">&lt;<\/span><span style=\"color: #000000;\">ChatRoom<\/span><span style=\"color: #000000;\">&gt;<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #800000;\">&quot;<\/span><span style=\"color: #800000;\">\/chat<\/span><span style=\"color: #800000;\">&quot;<\/span><span style=\"color: #000000;\">);\n<\/span><span style=\"color: #008080;\">16<\/span> <span style=\"color: #000000;\">        }\n<\/span><span style=\"color: #008080;\">17<\/span> <span style=\"color: #000000;\">    }\n<\/span><span style=\"color: #008080;\">18<\/span> <span style=\"color: #000000;\">}<\/span><\/div><\/pre>\n<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http:\/\/dunnhq.com --><\/div>\n<p>Sedangkan di kode program untuk sisi client dapat dilihat di bawah ini.<\/p>\n<div id=\"scid:9D7513F9-C04C-4721-824A-2B34F0212519:e6bd7955-35d1-4ad6-87fc-b9a2c2ccff10\" class=\"wlWriterEditableSmartContent\" style=\"float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px\">\n<pre style=\" width: 550px; height: 300px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;\"><div><!--\n\nCode highlighting produced by Actipro CodeHighlighter (freeware)\nhttp:\/\/www.CodeHighlighter.com\/\n\n--><span style=\"color: #008080;\"> 1<\/span> <span style=\"color: #0000FF;\">&lt;!<\/span><span style=\"color: #FF00FF;\">DOCTYPE html<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\"> 2<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">html <\/span><span style=\"color: #FF0000;\">xmlns<\/span><span style=\"color: #0000FF;\">=&quot;http:\/\/www.w3.org\/1999\/xhtml&quot;<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\"> 3<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">head<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\"> 4<\/span> <span style=\"color: #000000;\">    <\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">title<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">ChatRoom<\/span><span style=\"color: #0000FF;\">&lt;\/<\/span><span style=\"color: #800000;\">title<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\"> 5<\/span> <span style=\"color: #000000;\">    <\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">script <\/span><span style=\"color: #FF0000;\">src<\/span><span style=\"color: #0000FF;\">=&quot;.\/Scripts\/jquery-1.10.2.min.js&quot;<\/span><span style=\"color: #0000FF;\">&gt;&lt;\/<\/span><span style=\"color: #800000;\">script<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\"> 6<\/span> <span style=\"color: #000000;\">    <\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">script <\/span><span style=\"color: #FF0000;\">src<\/span><span style=\"color: #0000FF;\">=&quot;.\/Scripts\/jquery.signalR-2.1.2.min.js&quot;<\/span><span style=\"color: #0000FF;\">&gt;&lt;\/<\/span><span style=\"color: #800000;\">script<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\"> 7<\/span> <span style=\"color: #000000;\">    <\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">script <\/span><span style=\"color: #FF0000;\">src<\/span><span style=\"color: #0000FF;\">=&quot;.\/signalr\/hubs&quot;<\/span><span style=\"color: #FF0000;\"> type<\/span><span style=\"color: #0000FF;\">=&quot;text\/javascript&quot;<\/span><span style=\"color: #0000FF;\">&gt;&lt;\/<\/span><span style=\"color: #800000;\">script<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\"> 8<\/span> <span style=\"color: #000000;\">    <\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">script <\/span><span style=\"color: #FF0000;\">type<\/span><span style=\"color: #0000FF;\">=&quot;text\/javascript&quot;<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">\n<\/span><span style=\"color: #008080;\"> 9<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">        $(document).ready(<\/span><span style=\"background-color: #F5F5F5; color: #0000FF;\">function<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> () {\n<\/span><span style=\"color: #008080;\">10<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">            $(<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">#UserChat<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">).val(prompt(<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">Enter your name:<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">, <\/span><span style=\"background-color: #F5F5F5; color: #000000;\">''<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">));\n<\/span><span style=\"color: #008080;\">11<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">\n<\/span><span style=\"color: #008080;\">12<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">            <\/span><span style=\"background-color: #F5F5F5; color: #0000FF;\">var<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> persistent <\/span><span style=\"background-color: #F5F5F5; color: #000000;\">=<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> $.connection(<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">\/chat<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">);\n<\/span><span style=\"color: #008080;\">13<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">\n<\/span><span style=\"color: #008080;\">14<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">            persistent.received(<\/span><span style=\"background-color: #F5F5F5; color: #0000FF;\">function<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> (data) {\n<\/span><span style=\"color: #008080;\">15<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">                $(<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">#AddText<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">).append(data <\/span><span style=\"background-color: #F5F5F5; color: #000000;\">+<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> <\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">&lt;br\/&gt;<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">);\n<\/span><span style=\"color: #008080;\">16<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">            });\n<\/span><span style=\"color: #008080;\">17<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">\n<\/span><span style=\"color: #008080;\">18<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">            persistent.start().done(<\/span><span style=\"background-color: #F5F5F5; color: #0000FF;\">function<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> () {\n<\/span><span style=\"color: #008080;\">19<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">                $(<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">#SubmitButton<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">).click(<\/span><span style=\"background-color: #F5F5F5; color: #0000FF;\">function<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> () {\n<\/span><span style=\"color: #008080;\">20<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">                    persistent.send($(<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">#UserChat<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">).val() <\/span><span style=\"background-color: #F5F5F5; color: #000000;\">+<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> <\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> : <\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> <\/span><span style=\"background-color: #F5F5F5; color: #000000;\">+<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> $(<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">#PesanChat<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">).val());\n<\/span><span style=\"color: #008080;\">21<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">                    $(<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">#PesanChat<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">).val(<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">''<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">).focus();\n<\/span><span style=\"color: #008080;\">22<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">                });\n<\/span><span style=\"color: #008080;\">23<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">            });\n<\/span><span style=\"color: #008080;\">24<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">        });\n<\/span><span style=\"color: #008080;\">25<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">    <\/span><span style=\"color: #0000FF;\">&lt;\/<\/span><span style=\"color: #800000;\">script<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\">26<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">&lt;\/<\/span><span style=\"color: #800000;\">head<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\">27<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">body<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\">28<\/span> <span style=\"color: #000000;\">    <\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">div <\/span><span style=\"color: #FF0000;\">id<\/span><span style=\"color: #0000FF;\">=&quot;ChatUser&quot;<\/span><span style=\"color: #0000FF;\">&gt;&lt;\/<\/span><span style=\"color: #800000;\">div<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\">29<\/span> <span style=\"color: #000000;\">    <\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">input <\/span><span style=\"color: #FF0000;\">type<\/span><span style=\"color: #0000FF;\">=&quot;text&quot;<\/span><span style=\"color: #FF0000;\"> id<\/span><span style=\"color: #0000FF;\">=&quot;PesanChat&quot;<\/span><span style=\"color: #FF0000;\"> <\/span><span style=\"color: #0000FF;\">\/&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\">30<\/span> <span style=\"color: #000000;\">    <\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">input <\/span><span style=\"color: #FF0000;\">type<\/span><span style=\"color: #0000FF;\">=&quot;button&quot;<\/span><span style=\"color: #FF0000;\"> id<\/span><span style=\"color: #0000FF;\">=&quot;SubmitButton&quot;<\/span><span style=\"color: #FF0000;\"> value<\/span><span style=\"color: #0000FF;\">=&quot;Send&quot;<\/span><span style=\"color: #FF0000;\"> <\/span><span style=\"color: #0000FF;\">\/&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\">31<\/span> <span style=\"color: #000000;\">    <\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">div <\/span><span style=\"color: #FF0000;\">id<\/span><span style=\"color: #0000FF;\">=&quot;AddText&quot;<\/span><span style=\"color: #0000FF;\">&gt;&lt;\/<\/span><span style=\"color: #800000;\">div<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\">32<\/span> <span style=\"color: #000000;\">    <\/span><span style=\"color: #0000FF;\">&lt;<\/span><span style=\"color: #800000;\">input <\/span><span style=\"color: #FF0000;\">type<\/span><span style=\"color: #0000FF;\">=&quot;hidden&quot;<\/span><span style=\"color: #FF0000;\"> id<\/span><span style=\"color: #0000FF;\">=&quot;UserChat&quot;<\/span><span style=\"color: #FF0000;\"> <\/span><span style=\"color: #0000FF;\">\/&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\">33<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">&lt;\/<\/span><span style=\"color: #800000;\">body<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\">34<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">&lt;\/<\/span><span style=\"color: #800000;\">html<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\">35<\/span> <span style=\"color: #000000;\"><\/span><\/div><\/pre>\n<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http:\/\/dunnhq.com --><\/div>\n<p>{<strong><em>Uji Coba<\/em><\/strong>}<\/p>\n<p>Hasil dari kode di atas dapat dilihat pada gambar di bawah ini. Di awal perlu diisikan nama yang akan digunakan pada chat room.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image26.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image_thumb26.png\" width=\"548\" height=\"247\" \/><\/a><\/p>\n<p>Selanjutnya dapat dilihat halaman dapat digunakan untuk melakukan chat.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image27.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image_thumb27.png\" width=\"548\" height=\"311\" \/><\/a><\/p>\n<p>Selamat mencoba :)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pada akan dibuat halaman chat room dengan memanfaatkan Persistent Connection. Terdapat fitur-fitur yang sedikit berbeda dengan chat room yang telah dibuat sebelumnya pada bagian Hub yang dapat dilihat pada posting ASP.NET SignalR : Hub Communication Model Examples Part 2. {Menulis&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[6],"tags":[68,132],"class_list":["post-1678","post","type-post","status-publish","format-standard","hentry","category-softwaredev","tag-asp-net","tag-signalr"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p1sNAL-r4","_links":{"self":[{"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/1678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1678"}],"version-history":[{"count":1,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/1678\/revisions"}],"predecessor-version":[{"id":1679,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/1678\/revisions\/1679"}],"wp:attachment":[{"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}