加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – SignalR多个聊天室

发布时间:2020-12-16 04:03:35 所属栏目:asp.Net 来源:网络整理
导读:我打算创建一个聊天应用程序,我已经读过 SignalR是最适合应用的技术之一. 我见过它的例子,但它们只有一个聊天室. 我想要多个聊天室.用户只需选择其中一个聊天室. 虽然我是初学者,但我认为在SignalR中创建一个聊天室是这样的: script type="text/javascript"
我打算创建一个聊天应用程序,我已经读过 SignalR是最适合应用的技术之一.

我见过它的例子,但它们只有一个聊天室.

我想要多个聊天室.用户只需选择其中一个聊天室.

虽然我是初学者,但我认为在SignalR中创建一个聊天室是这样的:

<script type="text/javascript">
    $(function () {
        var connection = $.connection.communicator;
        connection.receive = function (from,msg) {
            $("#chatWindow").append("<li>" + from + ": " + msg + "</li>");
        };
        $.connection.hub.start();

        $("#btnSend").click(function () {
            connection.broadcast($("#txtName").val(),$("#txtMsg").val());
        });
    });
</script>

var connection =单聊天室(我不确定)

所以,如果我有很多连接(例如,connection1,connection2,connection3 ….)我可以有多个聊天室?

再一次,我不确定这是否正确…请帮助我如何实现多个聊天室…

(PS:我见过JABBR,但它的代码让我流鼻血.请问你能提供简单的例子吗?)

解决方法

您不必打开多个连接,只需一个,但要使用组:
public class MyHub : Hub,IDisconnect
{
    public Task Join()
    {
        return Groups.Add(Context.ConnectionId,"foo");
    }

    public Task Send(string message)
    {
        return Clients["foo"].addMessage(message);
    }

    public Task Disconnect()
    {
        return Clients["foo"].leave(Context.ConnectionId);
    }
}

一组意味着一个房间,因此每当一个用户加入一个房间时,您只需将该用户添加到该房间的组中,当您想要广播消息时,只需将消息发送给该组中的客户端即可.

更多细节:
https://github.com/SignalR/SignalR/wiki/Hubs

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读