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

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – SignalR多个聊天室前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我打算创建一个聊天应用程序,我已经读过 SignalR是最适合应用的技术之一.

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

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

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

  1. <script type="text/javascript">
  2. $(function () {
  3. var connection = $.connection.communicator;
  4. connection.receive = function (from,msg) {
  5. $("#chatWindow").append("<li>" + from + ": " + msg + "</li>");
  6. };
  7. $.connection.hub.start();
  8.  
  9. $("#btnSend").click(function () {
  10. connection.broadcast($("#txtName").val(),$("#txtMsg").val());
  11. });
  12. });
  13. </script>

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

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

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

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

@H_403_18@

解决方法

您不必打开多个连接,只需一个,但要使用组:
  1. public class MyHub : Hub,IDisconnect
  2. {
  3. public Task Join()
  4. {
  5. return Groups.Add(Context.ConnectionId,"foo");
  6. }
  7.  
  8. public Task Send(string message)
  9. {
  10. return Clients["foo"].addMessage(message);
  11. }
  12.  
  13. public Task Disconnect()
  14. {
  15. return Clients["foo"].leave(Context.ConnectionId);
  16. }
  17. }

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

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

@H_403_18@ @H_403_18@

猜你在找的asp.Net相关文章