From e7a1dc620bb0c5d9684c3b2b0529dbf3c7ba4bc3 Mon Sep 17 00:00:00 2001 From: Mikael Mengistu Date: Tue, 13 Aug 2019 15:12:31 -0700 Subject: [PATCH] Update SignalR Sample (#13078) --- .../samples/SignalRSamples/Hubs/Chat.cs | 42 ++++++++++--------- .../SignalRSamples/Hubs/DynamicChat.cs | 38 +++++++++-------- .../samples/SignalRSamples/Hubs/HubTChat.cs | 38 +++++++++-------- .../samples/SignalRSamples/wwwroot/hubs.html | 26 ++++++++---- 4 files changed, 80 insertions(+), 64 deletions(-) diff --git a/src/SignalR/samples/SignalRSamples/Hubs/Chat.cs b/src/SignalR/samples/SignalRSamples/Hubs/Chat.cs index cabbd4a391..7d662e27e2 100644 --- a/src/SignalR/samples/SignalRSamples/Hubs/Chat.cs +++ b/src/SignalR/samples/SignalRSamples/Hubs/Chat.cs @@ -9,58 +9,60 @@ namespace SignalRSamples.Hubs { public class Chat : Hub { - public override async Task OnConnectedAsync() + public override Task OnConnectedAsync() { - await Clients.All.SendAsync("Send", $"{Context.ConnectionId} joined"); + var name = Context.GetHttpContext().Request.Query["name"]; + return Clients.All.SendAsync("Send", $"{name} joined the chat"); } - public override async Task OnDisconnectedAsync(Exception ex) + public override Task OnDisconnectedAsync(Exception exception) { - await Clients.Others.SendAsync("Send", $"{Context.ConnectionId} left"); + var name = Context.GetHttpContext().Request.Query["name"]; + return Clients.All.SendAsync("Send", $"{name} left the chat"); } - public Task Send(string message) + public Task Send(string name, string message) { - return Clients.All.SendAsync("Send", $"{Context.ConnectionId}: {message}"); + return Clients.All.SendAsync("Send", $"{name}: {message}"); } - public Task SendToOthers(string message) + public Task SendToOthers(string name, string message) { - return Clients.Others.SendAsync("Send", $"{Context.ConnectionId}: {message}"); + return Clients.Others.SendAsync("Send", $"{name}: {message}"); } - public Task SendToConnection(string connectionId, string message) + public Task SendToConnection(string connectionId, string name, string message) { - return Clients.Client(connectionId).SendAsync("Send", $"Private message from {Context.ConnectionId}: {message}"); + return Clients.Client(connectionId).SendAsync("Send", $"Private message from {name}: {message}"); } - public Task SendToGroup(string groupName, string message) + public Task SendToGroup(string groupName, string name ,string message) { - return Clients.Group(groupName).SendAsync("Send", $"{Context.ConnectionId}@{groupName}: {message}"); + return Clients.Group(groupName).SendAsync("Send", $"{name}@{groupName}: {message}"); } - public Task SendToOthersInGroup(string groupName, string message) + public Task SendToOthersInGroup(string groupName, string name,string message) { - return Clients.OthersInGroup(groupName).SendAsync("Send", $"{Context.ConnectionId}@{groupName}: {message}"); + return Clients.OthersInGroup(groupName).SendAsync("Send", $"{name}@{groupName}: {message}"); } - public async Task JoinGroup(string groupName) + public async Task JoinGroup(string groupName, string name) { await Groups.AddToGroupAsync(Context.ConnectionId, groupName); - await Clients.Group(groupName).SendAsync("Send", $"{Context.ConnectionId} joined {groupName}"); + await Clients.Group(groupName).SendAsync("Send", $"{name} joined {groupName}"); } - public async Task LeaveGroup(string groupName) + public async Task LeaveGroup(string groupName, string name) { - await Clients.Group(groupName).SendAsync("Send", $"{Context.ConnectionId} left {groupName}"); + await Clients.Group(groupName).SendAsync("Send", $"{name} left {groupName}"); await Groups.RemoveFromGroupAsync(Context.ConnectionId, groupName); } - public Task Echo(string message) + public Task Echo(string name, string message) { - return Clients.Caller.SendAsync("Send", $"{Context.ConnectionId}: {message}"); + return Clients.Caller.SendAsync("Send", $"{name}: {message}"); } } } diff --git a/src/SignalR/samples/SignalRSamples/Hubs/DynamicChat.cs b/src/SignalR/samples/SignalRSamples/Hubs/DynamicChat.cs index 30d7154351..711df26f37 100644 --- a/src/SignalR/samples/SignalRSamples/Hubs/DynamicChat.cs +++ b/src/SignalR/samples/SignalRSamples/Hubs/DynamicChat.cs @@ -9,53 +9,55 @@ namespace SignalRSamples.Hubs { public class DynamicChat : DynamicHub { - public override async Task OnConnectedAsync() + public override Task OnConnectedAsync() { - await Clients.All.Send($"{Context.ConnectionId} joined"); + var name = Context.GetHttpContext().Request.Query["name"]; + return Clients.All.Send($"{name} joined the chat"); } - public override async Task OnDisconnectedAsync(Exception ex) + public override Task OnDisconnectedAsync(Exception exception) { - await Clients.Others.Send($"{Context.ConnectionId} left"); + var name = Context.GetHttpContext().Request.Query["name"]; + return Clients.All.Send($"{name} left the chat"); } - public Task Send(string message) + public Task Send(string name, string message) { - return Clients.All.Send($"{Context.ConnectionId}: {message}"); + return Clients.All.Send($"{name}: {message}"); } - public Task SendToOthers(string message) + public Task SendToOthers(string name, string message) { - return Clients.Others.Send($"{Context.ConnectionId}: {message}"); + return Clients.Others.Send($"{name}: {message}"); } - public Task SendToGroup(string groupName, string message) + public Task SendToGroup(string groupName, string name, string message) { - return Clients.Group(groupName).Send($"{Context.ConnectionId}@{groupName}: {message}"); + return Clients.Group(groupName).Send($"{name}@{groupName}: {message}"); } - public Task SendToOthersInGroup(string groupName, string message) + public Task SendToOthersInGroup(string groupName, string name, string message) { - return Clients.OthersInGroup(groupName).Send($"{Context.ConnectionId}@{groupName}: {message}"); + return Clients.OthersInGroup(groupName).Send($"{name}@{groupName}: {message}"); } - public async Task JoinGroup(string groupName) + public async Task JoinGroup(string groupName, string name) { await Groups.AddToGroupAsync(Context.ConnectionId, groupName); - await Clients.Group(groupName).Send($"{Context.ConnectionId} joined {groupName}"); + await Clients.Group(groupName).Send($"{name} joined {groupName}"); } - public async Task LeaveGroup(string groupName) + public async Task LeaveGroup(string groupName, string name) { - await Clients.Group(groupName).Send($"{Context.ConnectionId} left {groupName}"); + await Clients.Group(groupName).Send($"{name} left {groupName}"); await Groups.RemoveFromGroupAsync(Context.ConnectionId, groupName); } - public Task Echo(string message) + public Task Echo(string name, string message) { - return Clients.Caller.Send($"{Context.ConnectionId}: {message}"); + return Clients.Caller.Send($"{name}: {message}"); } } } diff --git a/src/SignalR/samples/SignalRSamples/Hubs/HubTChat.cs b/src/SignalR/samples/SignalRSamples/Hubs/HubTChat.cs index 3acb04f323..7aadbaad14 100644 --- a/src/SignalR/samples/SignalRSamples/Hubs/HubTChat.cs +++ b/src/SignalR/samples/SignalRSamples/Hubs/HubTChat.cs @@ -9,53 +9,55 @@ namespace SignalRSamples.Hubs { public class HubTChat : Hub { - public override async Task OnConnectedAsync() + public override Task OnConnectedAsync() { - await Clients.All.Send($"{Context.ConnectionId} joined"); + var name = Context.GetHttpContext().Request.Query["name"]; + return Clients.All.Send($"{name} joined the chat"); } - public override async Task OnDisconnectedAsync(Exception ex) + public override Task OnDisconnectedAsync(Exception exception) { - await Clients.Others.Send($"{Context.ConnectionId} left"); + var name = Context.GetHttpContext().Request.Query["name"]; + return Clients.All.Send($"{name} left the chat"); } - public Task Send(string message) + public Task Send(string name, string message) { - return Clients.All.Send($"{Context.ConnectionId}: {message}"); + return Clients.All.Send($"{name}: {message}"); } - public Task SendToOthers(string message) + public Task SendToOthers(string name, string message) { - return Clients.Others.Send($"{Context.ConnectionId}: {message}"); + return Clients.Others.Send($"{name}: {message}"); } - public Task SendToGroup(string groupName, string message) + public Task SendToGroup(string groupName, string name, string message) { - return Clients.Group(groupName).Send($"{Context.ConnectionId}@{groupName}: {message}"); + return Clients.Group(groupName).Send($"{name}@{groupName}: {message}"); } - public Task SendToOthersInGroup(string groupName, string message) + public Task SendToOthersInGroup(string groupName, string name, string message) { - return Clients.OthersInGroup(groupName).Send($"{Context.ConnectionId}@{groupName}: {message}"); + return Clients.OthersInGroup(groupName).Send($"{name}@{groupName}: {message}"); } - public async Task JoinGroup(string groupName) + public async Task JoinGroup(string groupName, string name) { await Groups.AddToGroupAsync(Context.ConnectionId, groupName); - await Clients.Group(groupName).Send($"{Context.ConnectionId} joined {groupName}"); + await Clients.Group(groupName).Send($"{name} joined {groupName}"); } - public async Task LeaveGroup(string groupName) + public async Task LeaveGroup(string groupName, string name) { - await Clients.Group(groupName).Send($"{Context.ConnectionId} left {groupName}"); + await Clients.Group(groupName).Send($"{name} left {groupName}"); await Groups.RemoveFromGroupAsync(Context.ConnectionId, groupName); } - public Task Echo(string message) + public Task Echo(string name, string message) { - return Clients.Caller.Send($"{Context.ConnectionId}: {message}"); + return Clients.Caller.Send($"{name}: {message}"); } } diff --git a/src/SignalR/samples/SignalRSamples/wwwroot/hubs.html b/src/SignalR/samples/SignalRSamples/wwwroot/hubs.html index 8700fd4d11..014f753744 100644 --- a/src/SignalR/samples/SignalRSamples/wwwroot/hubs.html +++ b/src/SignalR/samples/SignalRSamples/wwwroot/hubs.html @@ -27,6 +27,7 @@ + @@ -58,6 +59,7 @@
+
@@ -138,6 +140,13 @@ var connection; click('connect', function (event) { + + name = document.getElementById("displayname").value + if (name === "") { + alert("Please enter a valid name"); + return; + } + let hubRoute = hubTypeDropdown.value || "default"; let protocol = protocolDropdown.value === "msgpack" ? new signalR.protocols.msgpack.MessagePackHubProtocol() : @@ -148,6 +157,7 @@ options.transport = signalR.HttpTransportType[transportDropdown.value]; } + hubRoute = hubRoute + "?name=" + name; console.log('http://' + document.location.host + '/' + hubRoute); var connectionBuilder = new signalR.HubConnectionBuilder() @@ -205,45 +215,45 @@ click('broadcast', function (event) { let data = getText('message-text'); - invoke(connection, 'Send', data); + invoke(connection, 'Send', name, data); }); click('join-group', function (event) { let groupName = getText('group-name'); - invoke(connection, 'JoinGroup', groupName); + invoke(connection, 'JoinGroup', groupName, name); }); click('leave-group', function (event) { let groupName = getText('group-name'); - invoke(connection, 'LeaveGroup', groupName); + invoke(connection, 'LeaveGroup', groupName, name); }); click('groupmsg', function (event) { let groupName = getText('group-name'); let message = getText('group-message-text'); - invoke(connection, 'SendToGroup', groupName, message); + invoke(connection, 'SendToGroup', groupName, name, message); }); click('others-groupmsg', function (event) { let groupName = getText('group-name'); let message = getText('group-message-text'); - invoke(connection, 'SendToOthersInGroup', groupName, message); + invoke(connection, 'SendToOthersInGroup', groupName, name, message); }); click('send', function (event) { let data = getText('me-message-text'); - invoke(connection, 'Echo', data); + invoke(connection, 'Echo', name, data); }); click('broadcast-exceptme', function (event) { let data = getText('message-text'); - invoke(connection, 'SendToOthers', data); + invoke(connection, 'SendToOthers', name, data); }); click('connection-send', function (event) { let data = getText('connection-message-text'); let id = getText('connection-id'); - invoke(connection, 'SendToConnection', id, data); + invoke(connection, 'SendToConnection', id, name, data); });