{"id":1664,"date":"2014-12-12T08:42:00","date_gmt":"2014-12-12T08:42:00","guid":{"rendered":"http:\/\/www.rezafaisal.net\/?p=1664"},"modified":"2015-04-11T01:23:56","modified_gmt":"2015-04-11T01:23:56","slug":"asp-net-signalr-hub-communication-model-examples-part-2","status":"publish","type":"post","link":"https:\/\/www.rezafaisal.net\/?p=1664","title":{"rendered":"ASP.NET SignalR : Hub Communication Model Examples Part 2"},"content":{"rendered":"<p>Pada bagian ini akan dibuat aplikasi chat room sederhana dengan memanfaatkan SignalR Hub Class (v2) yang telah dibuat sebelumnya. Untuk membuat hal tersebut maka perlu ditambahkan sebuah method pada tersebut. Selain itu juga akan diterangkan beberapa hal yang dimiliki oleh class SignalR Hub Class (v2).<\/p>\n<p>{<strong><em>Menulis Kode Program<\/em><\/strong>}<\/p>\n<p>Seperti yang dilihat dari kode program 8 dapat dilihat bahwa class HelloWorld merupakan turunan dari class Hub, hal itu memungkinkan class anak memiliki kemampuan dari induknya seperti method atau property. Selain itu juga memungkinkan class anak ini memodifikasi kemampuan yang dimiliki induknya seperti melakukan override method yang dimiliki induknya. Jika diperhatikan pada class induk terdapat method yang dapat dilakukan override seperti yang terlihat pada gambar di bawah ini, method yang berfungsi untuk menangani event yang terjadi.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image20.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image_thumb20.png\" width=\"370\" height=\"161\" \/><\/a><\/p>\n<p>Dari daftar di atas dapat dilihat ada method yang berfungsi sebagai event handler seperti :<\/p>\n<ol>\n<li>OnConnected, dieksekusi jika client terkoneksi ke server. <\/li>\n<li>OnDisconnected, dieksekusi jika client terputus koneksinya. <\/li>\n<li>OnReconnected, dieksekusi jika client melakan koneksi ulang <\/li>\n<\/ol>\n<p>Pada class Hub HelloWorld ini akan ditambahkan override method OnConnected dan menambahkan method Send sebagai salah satu fungsi pada aplikasi ChatRoom ini.<\/p>\n<p>Berikut ini adalah isi file class Hub HelloWorld yang telah dimodifikasi.<\/p>\n<div id=\"scid:9D7513F9-C04C-4721-824A-2B34F0212519:c1d2beb1-c0f2-494a-962b-47fd8ae601a6\" 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.Web;\n<\/span><span style=\"color: #008080;\"> 5<\/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;\"> 6<\/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;\"> 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;\"> HelloSignalR\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;\"> HelloWorld : Hub\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;\"> Hello()\n<\/span><span style=\"color: #008080;\">13<\/span> <span style=\"color: #000000;\">        {\n<\/span><span style=\"color: #008080;\">14<\/span> <span style=\"color: #000000;\">            Clients.All.hello();\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;\">public<\/span><span style=\"color: #000000;\"> <\/span><span style=\"color: #0000FF;\">void<\/span><span style=\"color: #000000;\"> Send(<\/span><span style=\"color: #0000FF;\">string<\/span><span style=\"color: #000000;\"> user, <\/span><span style=\"color: #0000FF;\">string<\/span><span style=\"color: #000000;\"> pesan)\n<\/span><span style=\"color: #008080;\">18<\/span> <span style=\"color: #000000;\">        {\n<\/span><span style=\"color: #008080;\">19<\/span> <span style=\"color: #000000;\">            Clients.All.show(user, pesan);\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;\">        <\/span><span style=\"color: #0000FF;\">public<\/span><span style=\"color: #000000;\"> <\/span><span style=\"color: #0000FF;\">override<\/span><span style=\"color: #000000;\"> Task OnConnected()\n<\/span><span style=\"color: #008080;\">23<\/span> <span style=\"color: #000000;\">        {\n<\/span><span style=\"color: #008080;\">24<\/span> <span style=\"color: #000000;\">            <\/span><span style=\"color: #0000FF;\">return<\/span><span style=\"color: #000000;\"> Clients.All.connected();\n<\/span><span style=\"color: #008080;\">25<\/span> <span style=\"color: #000000;\">        }\n<\/span><span style=\"color: #008080;\">26<\/span> <span style=\"color: #000000;\">    }\n<\/span><span style=\"color: #008080;\">27<\/span> <span style=\"color: #000000;\">}\n<\/span><span style=\"color: #008080;\">28<\/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>Selanjutnya akan ditambahkan halaman baru dengan nama chatroom.html.<\/p>\n<div id=\"scid:9D7513F9-C04C-4721-824A-2B34F0212519:79a00dd1-891e-469b-90ab-3634929ea053\" 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;\"> hub <\/span><span style=\"background-color: #F5F5F5; color: #000000;\">=<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> $.connection.helloWorld;\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;\">            hub.client.connected <\/span><span style=\"background-color: #F5F5F5; color: #000000;\">=<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> <\/span><span style=\"background-color: #F5F5F5; color: #0000FF;\">function<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> () {\n<\/span><span style=\"color: #008080;\">15<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">                alert(<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">User baru bergabung.<\/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;\">            hub.client.show <\/span><span style=\"background-color: #F5F5F5; color: #000000;\">=<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> <\/span><span style=\"background-color: #F5F5F5; color: #0000FF;\">function<\/span><span style=\"background-color: #F5F5F5; color: #000000;\"> (user, pesan) {\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;\">#AddText<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">).append(<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">&lt;strong&gt; <\/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;\"> user <\/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;\/strong&gt; <\/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;\"> pesan <\/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;\">20<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">            }\n<\/span><span style=\"color: #008080;\">21<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">\n<\/span><span style=\"color: #008080;\">22<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">            $.connection.hub.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;\">23<\/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;\">24<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">                    hub.server.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;\">#PesanChat<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">'<\/span><span style=\"background-color: #F5F5F5; color: #000000;\">).val());\n<\/span><span style=\"color: #008080;\">25<\/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;\">26<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">                });\n<\/span><span style=\"color: #008080;\">27<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">            });\n<\/span><span style=\"color: #008080;\">28<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">        });\n<\/span><span style=\"color: #008080;\">29<\/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;\">30<\/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;\">31<\/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;\">32<\/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;\">33<\/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;\">34<\/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;\">35<\/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;\">36<\/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;\">37<\/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;\">38<\/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;\">39<\/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>Setelah halaman chatroom.html dieksekusi dapat dilihat tampilan seperti berikut ini.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image21.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image_thumb21.png\" width=\"548\" height=\"246\" \/><\/a><\/p>\n<p>Dan setelah itu akan dapat dilihat respon seperti pada gambar di bawah ini.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image22.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image_thumb22.png\" width=\"548\" height=\"290\" \/><\/a><\/p>\n<p>Selanjutnya user dapat mengetikkan pesan dan klik tombol Send untuk mengirim pesan pada chatroom. Untuk menguji halaman ini digunakan 3 window web browser yaitu 2 window menggunakan Internet Explorer dan sisanya menggunakan Mozilla Firefox. Setiap window akan mengetikkan nama user yang berbeda. Maka dapat dilihat seperti pada gambar di bawah ini hasil pembicaraan 3 orang user pada chat room.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image23.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image_thumb23.png\" width=\"548\" height=\"457\" \/><\/a><\/p>\n<p>Source code dari contoh di atas dapat dilihat secara lengkap di link berikut ini : <a title=\"https:\/\/github.com\/rezafaisal\/ASPNETSignalR\" href=\"https:\/\/github.com\/rezafaisal\/ASPNETSignalR\">https:\/\/github.com\/rezafaisal\/ASPNETSignalR<\/a>.<\/p>\n<p>Selamat mencoba :)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pada bagian ini akan dibuat aplikasi chat room sederhana dengan memanfaatkan SignalR Hub Class (v2) yang telah dibuat sebelumnya. Untuk membuat hal tersebut maka perlu ditambahkan sebuah method pada tersebut. Selain itu juga akan diterangkan beberapa hal yang dimiliki oleh&hellip;<\/p>\n","protected":false},"author":1,"featured_media":1718,"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-1664","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-softwaredev","tag-asp-net","tag-signalr"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.rezafaisal.net\/wp-content\/uploads\/2014\/12\/signalr.png","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p1sNAL-qQ","_links":{"self":[{"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/1664","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=1664"}],"version-history":[{"count":4,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/1664\/revisions"}],"predecessor-version":[{"id":1725,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/1664\/revisions\/1725"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/media\/1718"}],"wp:attachment":[{"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}