将多个组添加到SignalR ASP.NET

时间:2016-04-25 10:00:42

标签: javascript c# asp.net signalr

我有一个SignalR应用程序,我想动态创建组。 例如,我有2个文本框。一个用于组名,另一个用于消息。 如果用户将GroupA键入组名并发送消息,则只有GroupA中的消息才能看到此消息。

我的中心

public class SignalrServer : Hub
    {
        public class Chat : Hub
        {
            public void Send(string message)
            {           
                //Clients.All.addMessage(message);
                Clients.Group("get group name").addMessage("Group " + message);
            }

            public void Join(string groupName)
            {
                Groups.Add(Context.ConnectionId, groupName);
            }

        }
    }

Aspx文件

<script type="text/javascript">
    $(function () {
        // Proxy created on the fly          
        var chat = $.connection.chat;

        // Declare a function on the chat hub so the server can invoke it          
        chat.client.addMessage = function (message) {
            $('#messages').append('<li>' + message + '</li>');
        };

        $.connection.hub.start(function () {
            var group = $('#group').val();

            //chat.server.join("RoomA");
            chat.server.join(group);
        });

        // Start the connection
        $.connection.hub.start().done(function () {

            $("#broadcast").click(function () {
                // Call the chat method on the server
                chat.server.send($('#msg').val());
            });
        });
    });
</script>

  <div>

<input type="text" id="group" />
<input type="text" id="msg" />
<input type="button" id="broadcast" value="broadcast" />

<ul id="messages">
</ul>

我该如何使其发挥作用?

1 个答案:

答案 0 :(得分:0)

public void Send(string group, string message)
{           
    //Clients.All.addMessage(message);
    Clients.Group(group).addMessage("Group " + message);
}


var group = $('#group').val();
chat.server.send(group , $('#msg').val());