如何解决如何使用存储在 Mssql 数据库中的用户 ID 将消息发送给特定用户?
我想用Mssql数据库实现私人聊天系统。我想一对一的聊天系统。一位用户输入存储在数据库中的接收者 ID 和消息文本,然后将消息发送到 Receiver 。然后该消息出现在具有该接收者 ID 的接收者消息区域中。在我的代码中是这样工作的; Signalr 生成连接 ID,但此 ID 每次刷新都会更改,我想保持不变。我该怎么做?
这是我的js代码
"use strict";
$(document).ready(() => {
var connection = new signalR.HubConnectionBuilder().withUrl("/chathub").build();
connection.on("connected",connecitonid => $("#connectionId").html(connecitonid));
connection.start();
$("button").click(() => {
let message = $("#txtMessage").val();
var user = $("#sender").val();
connection.invoke("ClientSendMessage",$("#client").val(),user,message)
.catch(error => console.log("Error." + error));
var div = document.createElement("div");
div.textContent = "me" + ":" + message;
document.getElementById("son").appendChild(div);
});
connection.on("ReceiveMessage",function (user,message) {
var msg = message.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");
var encodedMsg = user + ":" + msg;
var div = document.createElement("div");
div.textContent = encodedMsg;
document.getElementById("son").appendChild(div);
});
});
这是我的枢纽班
using MentorShip.Models;
using Microsoft.AspNetCore.SignalR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace MentorShip.Hubs
{
public class SignalRChat:Hub
{
public async Task ClientSendMessage(string connectionId,string user,string message)
{
await Clients.Client(connectionId).SendAsync("ReceiveMessage",message);
}
public async override Task OnConnectedAsync()
{
await Clients.Caller.SendAsync("connected",Context.ConnectionId);
}
}
}
这是我的HTML代码
<div class="container">
<div class="row"><h5>Connection ID : <span id="connectionId"></span></h5></div>
<div class="row">
<div class="col-md-7"><input type="text" id="sender" value="Sender Name"></div>
</div>
<div class="row">
<div class="col-md-7"><input type="text" placeholder="ReceiverId" id="client"></div>
</div>
<div class="row">
<div class="col-md-7"> <input type="text" id="txtMessage"> <button>Send</button></div>
</div>
<div class="row">
<div class="col-md-7" id="son"> </div>
</div>
</div>
这就是代码的工作方式 This connection id changes every refresh or another browser not constant
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。