1- using BotSharp . Abstraction . Messaging ;
21using BotSharp . Abstraction . Messaging . Models . RichContent ;
32using Microsoft . AspNetCore . SignalR ;
43
@@ -8,12 +7,15 @@ public class ChatHubConversationHook : ConversationHookBase
87{
98 private readonly IServiceProvider _services ;
109 private readonly IHubContext < SignalRHub > _chatHub ;
10+ private readonly IUserIdentity _user ;
1111
1212 public ChatHubConversationHook ( IServiceProvider services ,
13- IHubContext < SignalRHub > chatHub )
13+ IHubContext < SignalRHub > chatHub ,
14+ IUserIdentity user )
1415 {
1516 _services = services ;
1617 _chatHub = chatHub ;
18+ _user = user ;
1719 }
1820
1921 public override async Task OnUserAgentConnectedInitially ( Conversation conversation )
@@ -33,7 +35,18 @@ public override async Task OnUserAgentConnectedInitially(Conversation conversati
3335 foreach ( var message in messages )
3436 {
3537 await Task . Delay ( 300 ) ;
36- await OnResponseGenerated ( new RoleDialogModel ( AgentRole . Assistant , message . Text ) ) ;
38+
39+ await _chatHub . Clients . User ( _user . Id ) . SendAsync ( "OnMessageReceivedFromAssistant" , new ChatResponseModel ( )
40+ {
41+ ConversationId = conversation . Id ,
42+ Text = message . Text ,
43+ Sender = new UserViewModel ( )
44+ {
45+ FirstName = "AI" ,
46+ LastName = "Assistant" ,
47+ Role = AgentRole . Assistant
48+ }
49+ } ) ;
3750 }
3851 }
3952
@@ -75,7 +88,7 @@ public override async Task OnResponseGenerated(RoleDialogModel message)
7588 {
7689 var conv = _services . GetRequiredService < IConversationService > ( ) ;
7790
78- await _chatHub . Clients . All . SendAsync ( "OnMessageReceivedFromAssistant" , new ChatResponseModel ( )
91+ await _chatHub . Clients . User ( _user . Id ) . SendAsync ( "OnMessageReceivedFromAssistant" , new ChatResponseModel ( )
7992 {
8093 ConversationId = conv . ConversationId ,
8194 MessageId = message . MessageId ,
0 commit comments