我正在开发一个非常简单的项目,其中用户使用 SignalR 库通过服务器向另一个用户发送私人消息。我使用此代码作为基础https://www.codeproject.com/Articles/562023/Asp-Net-SignalR-Chat-Room
我从一个简单的功能测试开始,但我的收件人没有收到消息并且它不能正常工作,你能帮我理解为什么吗?
在我的程序中,用户名是在会话中动态生成的,下面代码中的用户名不是真实数据,我只是在示例中使用它们
客户端
</script>
<script type="text/javascript" src="/Scripts/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="/Scripts/jquery.signalR-1.2.2.js"></script>
<script type="text/javascript" src="/signalr/hubs"></script>
<script type="text/javascript">
$(function () {
var chatHub = $.connection.chatHub;
console.log('connected')
chatHub.client.messageReceived = function (userName, message) {
alert("You have a new message");
}
$.connection.hub.start().done(function () {
chatHub.server.connect('FromUsername');
$('#btnSend').click(function () {
var userId='ToUsername'
var msg = 'Test';
chatHub.server.sendPrivateMessage(userId, msg);
});
});
});
</script>
服务器端
public class ChatHub : Hub
{
#region Data Members
static List<UserDetail> ConnectedUsers = new List<UserDetail>();
static List<MessageDetail> CurrentMessage = new List<MessageDetail>();
#endregion
#region Methods
public void Connect(string userName)
{
var id = Context.ConnectionId;
if (ConnectedUsers.Count(x => x.ConnectionId == id) == 0)
{
ConnectedUsers.Add(new UserDetail { ConnectionId = id, UserName = userName });
// send to caller
Clients.Caller.onConnected(id, userName, ConnectedUsers, CurrentMessage);
// send to all except caller client
Clients.AllExcept(id).onNewUserConnected(id, userName);
}
}
当我执行该程序时,它会在控制台上显示日志“已连接”,并且在按下按钮时会触发该事件,但由于某种原因未发送或未收到消息
MMMHUHU
相关分类