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 +{ + + +} +
-

Welcome

-

Learn about building Web apps with ASP.NET Core.

+ + +
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