46 lines
1.4 KiB
C#
46 lines
1.4 KiB
C#
using Microsoft.AspNetCore.SignalR;
|
|
|
|
namespace LiveChat.Server.Hubs;
|
|
|
|
public class ChatHub : Hub
|
|
{
|
|
public async Task SendMessage(string user, string message, string room)
|
|
{
|
|
using (var db = new ChattingContext())
|
|
{
|
|
var messageData = new ChatMessage
|
|
{
|
|
User = user,
|
|
Message = message,
|
|
};
|
|
var dbSave = db.Messages.Add(messageData);
|
|
await Clients.AllExcept("LiveChat Room Users").SendAsync("ReceiveMessage", user, message);
|
|
db.SaveChanges();
|
|
}
|
|
}
|
|
|
|
public async Task SendMessageRoom(string user, string message, string room)
|
|
{
|
|
using (var db = new ChattingContext())
|
|
{
|
|
var messageData = new RoomChatMessage()
|
|
{
|
|
User = user,
|
|
Message = message,
|
|
RoomId = room
|
|
};
|
|
var dbSave = db.RoomChatMessages.Add(messageData);
|
|
await Clients.Group(room).SendAsync("ReceiveMessage", user, message);
|
|
db.SaveChanges();
|
|
}
|
|
}
|
|
|
|
public async Task JoinRoom(string room, string user)
|
|
{
|
|
await Groups.AddToGroupAsync(Context.ConnectionId, room);
|
|
await Groups.AddToGroupAsync(Context.ConnectionId, "Folk i rom");
|
|
await Clients.Caller.SendAsync("ConnectionIdReceive", Context.ConnectionId);
|
|
}
|
|
}
|
|
|