Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Display HTML Code
- <div id="discussion" style="overflow:hidden; height:450px;">
- @foreach (var message in ChatManager.messageHistory().Reverse())
- {
- @message.username<text>:</text> @message.message<br />
- }
- </div>
- <div class="input-group mar-btm">
- <input type="text" placeholder="Chat Message" id="message" class="form-control">
- <span class="input-group-btn">
- <button class="btn btn-mint" id="sendmessage" type="button">Send</button>
- </span>
- </div>
- <input type="hidden" id="displayname" class="form-control" />
- <script src="~/Scripts/jquery.signalR-2.1.2.min.js"></script>
- <script src="~/signalr/hubs"></script>
- <script>
- document.getElementById("message")
- .addEventListener("keyup", function (event) {
- event.preventDefault();
- if (event.keyCode == 13) {
- document.getElementById("sendmessage").click();
- }
- });
- </script>
- <script>
- $(function () {
- // Chat hub refrence
- var chat = $.connection.chatHub;
- // var displayname = ;
- // Call back for displaying messages
- chat.client.addNewMessageToPage = function (name, message) {
- // append the message to the page, bottom up
- $('#discussion').prepend('<li><strong>' + htmlEncode(name)
- + '</strong>: ' + htmlEncode(message) + '</li>');
- };
- // Get and set a username, need to update for MVC Code to GetUsernameById
- $('#displayname').val('@if (Request.IsAuthenticated) {@User.Identity.GetUserName()} else { <text>TrollUser</text> } ');
- // Initial chatbox focus
- $('#message').focus();
- // Load and connect to hub
- $.connection.hub.start().done(function () {
- $('#sendmessage').click(function () {
- // Calls for sending messages to server
- chat.server.send($('#displayname').val(), $('#message').val());
- // Clear the previous message and await new one
- $('#message').val('').focus();
- });
- });
- });
- // This optional function html-encodes messages for display in the page.
- function htmlEncode(value) {
- var encodedValue = $('<div />').text(value).html();
- return encodedValue;
- }
- </script>
- </div>
- // Database Model
- namespace CryptoMarket.Models.DB
- {
- public class ChatMessages
- {
- [Key]
- public int MessageId { get; set; }
- public string username { get; set; }
- public string message { get; set; }
- }
- }
- // SignalR chatHubs Code
- namespace SignalRChat
- {
- public class ChatHub : Hub
- {
- public void Send(string name, string message)
- {
- using (var context = new ApplicationDbContext())
- {
- var username = name;
- var newmessage = message;
- context.ChatMessages.Add(new ChatMessages
- {
- username = name,
- message = newmessage
- });
- context.SaveChanges();
- }
- // Call the addNewMessageToPage method to update clients.
- Clients.All.addNewMessageToPage(name, message);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement