Screenshot how this problem looks in chat - https://imgur.com/a/2y7cImC I immediately received the same text that i sent to user(sending time is randomized, dont look at it) User that must receive the message get it without problem, but every time when method is invoked, all users get message text that was written in the input
Here`s the code of method that creating message
[HttpPost("create"), DisableRequestSizeLimit]
public async Task<ActionResult> CreateMessage(CreateMessageDto createMessageDto)
{
try
{
var authJWT = Request.Cookies["accessToken"];
var validatedJWT = _jwtService.ValidateJWT(authJWT);
Message messageToCreate;
if (createMessageDto.Type == "image" || createMessageDto.Type == "video" || createMessageDto.Type == "document")
{
var uploadFile = await UploadFile(createMessageDto.File);
if (uploadFile.Code == "error")
{
return Ok(new { code = "error", message = uploadFile.Message });
}
messageToCreate = new()
{
MessageId = Guid.NewGuid(),
Uid = createMessageDto.Uid,
Username = createMessageDto.Username,
Avatar = createMessageDto.Avatar,
Content = uploadFile.FileName,
Type = createMessageDto.Type,
CreatedAt = DateTime.Now,
InboxRefId = createMessageDto.InboxRefId
};
}
else
{
messageToCreate = new()
{
MessageId = Guid.NewGuid(),
Uid = createMessageDto.Uid,
Username = createMessageDto.Username,
Avatar = createMessageDto.Avatar,
Content = createMessageDto.Content,
Type = createMessageDto.Type,
CreatedAt = DateTime.Now,
InboxRefId = createMessageDto.InboxRefId
};
}
await _messageRepository.CreateMessage(messageToCreate);
await _chatHub.Clients.All.ReceiveMessage(messageToCreate);
return Ok(new { code = "success", message = messageToCreate });
} catch (Exception ex) {
return Unauthorized(new { code = "error", message = "Unauthorized" });
}
}
and from front-end part:
const connection = new HubConnectionBuilder()
.withUrl(`https://chatapitest.azurewebsites.net/hubs/chat`)
.withAutomaticReconnect()
.build();
connection
.start()
.then(() => {
console.log("connect");
// Receive message event listener
connection.on("ReceiveMessage", (message) => {
console.log("Receive!");
// console.log(message);
messageObj = {
id: chatMessages.length + 1,
message: message.content,
time: "00:" + n,
userType: "receiver",
// image: avatar4,
isFileMessage: false,
isImageMessage: false,
};
// console.log(messageObj);
setchatMessages((prev) => [...prev, messageObj]);
```