Asp.net-Mvc-3

SignalR 多個聊天室

  • March 31, 2020

我正計劃創建一個聊天應用程序,並且我讀到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,但它的程式碼讓我流鼻血。你能提供簡單的例子嗎?)

您不必打開多個連接,只需打開一個,但要使用Group

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

引用自:https://stackoverflow.com/questions/11175173