2016-04-25 61 views
0

我有一个SignalR应用程序,我想随时创建组。 例如,我有2个文本框。一个是组名,另一个是消息。 如果用户输入GroupA作为组名并仅发送GroupA中的消息,则应该看到此消息。将多个组添加到SignalR ASP.NET

我HUB

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> 

我怎样才能让这个工作?

回答

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()); 
+0

不工作...当我点击广播没有任何反应。 – Barlet