diff --git a/BinaryDad.Coding/Pages/Index.cshtml b/BinaryDad.Coding/Pages/Index.cshtml
index b5f0c15..c6fac9d 100644
--- a/BinaryDad.Coding/Pages/Index.cshtml
+++ b/BinaryDad.Coding/Pages/Index.cshtml
@@ -4,7 +4,14 @@
ViewData["Title"] = "Home page";
}
+@section Scripts
+{
+
+
+}
+
diff --git a/BinaryDad.Coding/wwwroot/js/hub.js b/BinaryDad.Coding/wwwroot/js/hub.js
new file mode 100644
index 0000000..1157a82
--- /dev/null
+++ b/BinaryDad.Coding/wwwroot/js/hub.js
@@ -0,0 +1,28 @@
+var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();
+
+//Disable send button until connection is established
+document.getElementById("sendButton").disabled = true;
+
+connection.on("ReceiveMessage", function (user, message) {
+ var li = document.createElement("li");
+ document.getElementById("messagesList").appendChild(li);
+ // We can assign user-supplied strings to an element's textContent because it
+ // is not interpreted as markup. If you're assigning in any other way, you
+ // should be aware of possible script injection concerns.
+ li.textContent = `${user} says ${message}`;
+});
+
+connection.start().then(function () {
+ document.getElementById("sendButton").disabled = false;
+}).catch(function (err) {
+ return console.error(err.toString());
+});
+
+document.getElementById("sendButton").addEventListener("click", function (event) {
+ var user = document.getElementById("userInput").value;
+ var message = document.getElementById("messageInput").value;
+ connection.invoke("SendMessage", user, message).catch(function (err) {
+ return console.error(err.toString());
+ });
+ event.preventDefault();
+});
\ No newline at end of file