{"id":1653,"date":"2014-12-11T08:14:00","date_gmt":"2014-12-11T08:14:00","guid":{"rendered":"http:\/\/www.rezafaisal.net\/?p=1653"},"modified":"2015-04-11T01:17:09","modified_gmt":"2015-04-11T01:17:09","slug":"asp-net-signalr-hub-communication-model-examples-part-1","status":"publish","type":"post","link":"https:\/\/www.rezafaisal.net\/?p=1653","title":{"rendered":"ASP.NET SignalR : Hub Communication Model Examples Part 1"},"content":{"rendered":"<p>Pada bagian berikut ini akan dipaparkan tahap-tahap implementasi ASP.NET SignalR 2 pada aplikasi web dengan menggunakan model komunikasi Hub.<\/p>\n<p>Contoh yang akan diberikan pada posting ini adalah \u201cHello World\u201d dengan menggunakan ASP.NET SignalR dengan metode komunikasi Hub.<\/p>\n<p>&#160;<\/p>\n<p>{<strong><em>Membuat Project<\/em><\/strong>}<\/p>\n<p>Langkah pertama yang dilakukan adalah membuat solution. Pada ebook ini dibuat solution dengan nama ASP.NET.SignalR.2.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image6.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_thumb6.png\" width=\"264\" height=\"139\" \/><\/a><\/p>\n<p>Langkah selanjutnya menambahkan project web pada solution tersebut dengan cara klik kanan pada solution tersebut kemudian pilih Add &gt; New Project. Pada windows Add New Project pilih Visual C# &gt; Web &gt; ASP.NET Web Application seperti pada gambar berikut.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image7.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_thumb7.png\" width=\"467\" height=\"298\" \/><\/a><\/p>\n<p>Nama project ini adalah HelloSignalR yang dapat ditulis pada kolom Name, kemudian klik tombol OK. Pada window New ASP.NET Project pilih Empty kemudian klik tombol OK.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image8.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_thumb8.png\" width=\"548\" height=\"410\" \/><\/a><\/p>\n<p>Maka dapat dilihat tambahan project pada solution seperti yang dilihat pada gambar berikut ini.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image9.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_thumb9.png\" width=\"263\" height=\"184\" \/><\/a><\/p>\n<p>Selanjutnya klik kanan pada project HelloSignalR dan pilih Add &gt; New Item. Pada window Add New Item pilih Web &gt; SignalR Hub Class (v2). Pada kolom name isi nilai HelloWorld.cs sebagai nama class. Kemudian klik tombol Add.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image10.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_thumb10.png\" width=\"548\" height=\"349\" \/><\/a><\/p>\n<p>Maka pada project HelloSignalR pada area Solution tambahan file class HelloHub.cs seperti berikut ini.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image11.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_thumb11.png\" width=\"310\" height=\"269\" \/><\/a><\/p>\n<p>Berikut ini adalah isi dari file HelloHub.cs.<\/p>\n<div id=\"scid:9D7513F9-C04C-4721-824A-2B34F0212519:059b05fd-5caa-44e1-8de5-84ff9eb7a884\" 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: 400px; 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;\">\n<\/span><span style=\"color: #008080;\"> 7<\/span> <span style=\"color: #000000;\"><\/span><span style=\"color: #0000FF;\">namespace<\/span><span style=\"color: #000000;\"> HelloSignalR\n<\/span><span style=\"color: #008080;\"> 8<\/span> <span style=\"color: #000000;\">{\n<\/span><span style=\"color: #008080;\"> 9<\/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;\">10<\/span> <span style=\"color: #000000;\">    {\n<\/span><span style=\"color: #008080;\">11<\/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;\">12<\/span> <span style=\"color: #000000;\">        {\n<\/span><span style=\"color: #008080;\">13<\/span> <span style=\"color: #000000;\">            Clients.All.hello();\n<\/span><span style=\"color: #008080;\">14<\/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><\/div><\/pre>\n<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http:\/\/dunnhq.com --><\/div>\n<p>Selain menambahkan file class tersebut juga ditambahkan folder Scripts yang berisi file-file kode Javascript yang dapat dilihat pada gambar di bawah ini.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image12.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_thumb12.png\" width=\"261\" height=\"292\" \/><\/a><\/p>\n<p>File-file Javascript tersebut ditambahkan karena dibutuhkan untuk mendukung implementasi ASP.NET SignalR 2 pada aplikasi. Selain tambahan file-file Javascript tersebut, pada project juga ditambahkan beberapa namespace yang dapat dilihat pada gambar berikut ini.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image13.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_thumb13.png\" width=\"290\" height=\"291\" \/><\/a><\/p>\n<p>Dari gambar di atas dapat dilihat beberapa namespace penting seperti :<\/p>\n<ul>\n<li>Microsoft.AspNet.SignalR.Core. <\/li>\n<li>Microsoft.AspNet.SignalR.SystemWeb. <\/li>\n<li>Microsoft.Owin. <\/li>\n<li>Microsoft.Owin.Host.SystemWeb. <\/li>\n<li>Microsoft.Owin.Security. <\/li>\n<li>Owin. <\/li>\n<\/ul>\n<p>Selanjutnya adalah menambahkan class OWIN Startup dengan cara klik kanan pada project kemudian pilih Add &gt; New Item. Kemudian pilih Web dan pilih OWIN Startup class. Pada kolom Name isi dengan nilai Startup.cs. Kemudian klik tombol Add.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image14.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_thumb14.png\" width=\"548\" height=\"348\" \/><\/a><\/p>\n<p>Berikut ini adalah isi dari file Startup.cs.<\/p>\n<div id=\"scid:9D7513F9-C04C-4721-824A-2B34F0212519:d9e6c594-adf6-4d1b-812f-61c3f951e624\" 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;\">(HelloSignalR.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;\"> 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;\"> 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;\">            <\/span><span style=\"color: #008000;\">\/\/<\/span><span style=\"color: #008000;\"> For more information on how to configure your application, visit <\/span><span style=\"color: #008000; text-decoration: underline;\">http:\/\/go.microsoft.com\/fwlink\/?LinkID=316888<\/span><span style=\"color: #008000;\">\n<\/span><span style=\"color: #008080;\">15<\/span> <span style=\"color: #008000;\"><\/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><\/div><\/pre>\n<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http:\/\/dunnhq.com --><\/div>\n<p>{<strong><em>Menulis Kode<\/em><\/strong>}<\/p>\n<p>Setelah persiapan project di atas telah selesai dilakukan maka selanjutnya dilakukan modifikasi kode class-class yang telah ada.<\/p>\n<p>Berikutnya adalah melakukan modifikasi class Startup.cs.<\/p>\n<div id=\"scid:9D7513F9-C04C-4721-824A-2B34F0212519:3ceb6e13-96af-4874-935c-8f08f7346cbb\" 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;\">(HelloSignalR.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;\"> 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;\"> 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();\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><\/div><\/pre>\n<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http:\/\/dunnhq.com --><\/div>\n<p>Pada kode di atas ditambahkan kode app.MapSignalR() ke dalam method Configuration.<\/p>\n<p>Selanjutnya ditambahkan file index.html yang akan menjadi aplikasi web dan sebagai halaman client yang akan digunakan user. Aplikasi yang dibuat ini berfungsi mengirimkan pesan berupa tulisan \u201cHello World!\u201d kepada seluaruh client yang terkoneksi ke server.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image15.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_thumb15.png\" width=\"477\" height=\"305\" \/><\/a><\/p>\n<p>Untuk menambahkan file index.html ini dengan cara klik kanan pada project kemudian pilih Add &gt; New Item. Kemudian pilih Web &gt; HTML Page dan berikan nama file index.html pada kolom Name. Dan klik tombol Add. Setelah file index.html dibuat, klik kanan pada file tersebut dan pilih Set as Start Page.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image16.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_thumb16.png\" width=\"517\" height=\"443\" \/><\/a><\/p>\n<p>Kemudian ubah isi file index.html menjadi seperti berikut ini.<\/p>\n<div id=\"scid:9D7513F9-C04C-4721-824A-2B34F0212519:5ed2d670-ca91-4f4f-b1c9-96049954d75f\" 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;\">Hello World! with SignalR<\/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: #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;\">11<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">\n<\/span><span style=\"color: #008080;\">12<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">            hub.client.hello <\/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;\">13<\/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;\">Hello World!&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;\">14<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">            }\n<\/span><span style=\"color: #008080;\">15<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">\n<\/span><span style=\"color: #008080;\">16<\/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;\">17<\/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;\">18<\/span> <span style=\"background-color: #F5F5F5; color: #000000;\">                    hub.server.hello();\n<\/span><span style=\"color: #008080;\">19<\/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;\">    <\/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;\">23<\/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;\">24<\/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;\">25<\/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;\">26<\/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;Say Hello&quot;<\/span><span style=\"color: #FF0000;\"> <\/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;\">html<\/span><span style=\"color: #0000FF;\">&gt;<\/span><span style=\"color: #000000;\">\n<\/span><span style=\"color: #008080;\">29<\/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 melakukan pembuatan kode di atas maka selanjutnya aplikasi web yang telah ditulis di atas diuji coba. Untuk menguji aplikasi di atas akan digunakan beberapa window web browser yang akan dijalan sekaligus. Pada uji coba ini akan digunakan dua jenis web browser yaitu Internet Explorer dan Mozilla Firefox.<\/p>\n<p>Langkah pertama yang dilakukan untuk uji coba ini adalah mengeksekusi project ini dengan cara klik kanan pada project kemudian pilih Debug &gt; Start new instance. Maka akan dapat dilihat web browser Internet Explorer seperti berikut ini.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image17.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_thumb17.png\" width=\"548\" height=\"296\" \/><\/a><\/p>\n<p>Dengan alamat yang didapat dari address bar di atas maka bisa digunakan untuk dijalankan pada window web browser lainnya.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image18.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_thumb18.png\" width=\"531\" height=\"349\" \/><\/a><\/p>\n<p>Pada gambar di atas dapat dilihat digunakan 4 window web browser, 2 window pada sisi sebelah kiri adalah Internet Explorer, sedangkan 2 window di sisi kanan adalah Mozilla Firefox.<\/p>\n<p>Selanjutnya adalah mencoba untuk mengklik tombol Say Hello pada salah satu window yang ada untuk membuktikan bahwa pesan \u201cHello World!\u201d akan dikirimkan ke seluruh window.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2015\/04\/image19.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_thumb19.png\" width=\"517\" height=\"336\" \/><\/a><\/p>\n<p>Dari hasil uji coba tersebut jika tombol pada salah satu window diklik maka tulisan \u201cHallo World!\u201d akan ditampilkan pada seluruh web browser.<\/p>\n<p>Souce 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 berikut ini akan dipaparkan tahap-tahap implementasi ASP.NET SignalR 2 pada aplikasi web dengan menggunakan model komunikasi Hub. Contoh yang akan diberikan pada posting ini adalah \u201cHello World\u201d dengan menggunakan ASP.NET SignalR dengan metode komunikasi Hub. &#160; {Membuat Project}&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-1653","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-qF","_links":{"self":[{"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/1653","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=1653"}],"version-history":[{"count":4,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/1653\/revisions"}],"predecessor-version":[{"id":1724,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/1653\/revisions\/1724"}],"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=1653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}