ASP.NET MVC 5、SignalR 2.2.1和会话.使用它们创建网络聊天

本文关键字:网络聊天 创建 会话 MVC NET ASP SignalR | 更新日期: 2023-09-27 18:01:14

我是ASP.NET MVC和SignalR的新手。我遵循了一些关于MVC和SignalR的教程来了解基础知识。我搜索、阅读和测试了一下,但没有任何具体的问题。所以我会从第一次开始就尽量把一切都解释清楚。我正在尝试用MVC和SignalR创建一个网络聊天程序。我似乎不理解SignalR和MVC的使用以及会话处理。

我需要跟踪用户会话并确定用户是否已登录。

将有创建聊天室的功能(仅适用于登录用户(。

选项(1(未登录用户:

未登录的用户必须只输入一个名称,然后才能访问某些聊天室。他将无法创建新的聊天室。

选项(2(登录用户:

登录的用户将能够创建一个聊天室。并加入任何其他聊天室。

问题:

  1. 应该如何创建新的聊天室?

    • 是否在运行时动态创建新聊天室的视图
    • 创建一个静态视图,然后仅用于显示数据(我的意思是:对于所有用户和房间,我通过编程确定哪个用户在哪个房间,过滤所有其他用户,所有对话,并在该静态视图中显示特定房间中特定用户的内容…(
    • 还是别的什么
  2. 如何检查用户是否已登录?

  3. 登录用户的检查与SignalR有多大关系
  4. 加入聊天室是如何完成的
  5. 我应该关注未登录用户的会话吗
  6. 我真的需要在任何地方使用这种应用程序的会话吗?还是只需要会话来确定用户是否登录
  7. 我应该将消息直接存储到DB中,还是在插入到DB之前必须做某种缓冲区?(假设我有60万人同时聊天,直接插入数据库会导致数据库服务器"过热"吗?(

我想这是暂时的。如果出现问题,我将进行编辑。。。

提前感谢所有愿意帮助我的人。

ASP.NET MVC 5、SignalR 2.2.1和会话.使用它们创建网络聊天

同时问的问题太多了。我会尽量说得更具体一些,否则你会得到模糊的答案。

关于主要问题,您需要了解SignalR身份验证和授权

基本上,您可以将[Authorize]属性添加到要保护的方法(如CreateRoom(中。这些仅对登录用户可用。您不需要处理会话或进行任何检查,SignalR将为您完成。

未标记为[Authorize]的方法是"匿名的",这意味着任何用户都可以调用它们。

加入聊天室是如何完成的?

你可以为每个房间保留一个静态的客户端列表,并自己管理连接和断开连接。或者更好的是,您可以使用SignalR组。

有一个很棒的(高级的(工作聊天应用程序叫Jabbr.net,它是用SignalR制作的。您可以获取源代码并在那里找到所有答案

我想您可能不知何故错过了理解SignalR的概念和功能。因此,您需要再次检查SignalR,因为它基本上用于在.NET.中创建聊天应用程序

你可以在互联网上搜索的东西有:*使用SignalR创建聊天应用程序。*使用SignalR创建群聊。

群组将帮助您管理授权和未授权用户聊天。

因此,这些搜索将为您提供所有问题和理解的最佳想法。