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(登录用户:
登录的用户将能够创建一个聊天室。并加入任何其他聊天室。
问题:
-
应该如何创建新的聊天室?
- 是否在运行时动态创建新聊天室的视图
- 创建一个静态视图,然后仅用于显示数据(我的意思是:对于所有用户和房间,我通过编程确定哪个用户在哪个房间,过滤所有其他用户,所有对话,并在该静态视图中显示特定房间中特定用户的内容…(
- 还是别的什么
-
如何检查用户是否已登录?
- 登录用户的检查与SignalR有多大关系
- 加入聊天室是如何完成的
- 我应该关注未登录用户的会话吗
- 我真的需要在任何地方使用这种应用程序的会话吗?还是只需要会话来确定用户是否登录
- 我应该将消息直接存储到DB中,还是在插入到DB之前必须做某种缓冲区?(假设我有60万人同时聊天,直接插入数据库会导致数据库服务器"过热"吗?(
我想这是暂时的。如果出现问题,我将进行编辑。。。
提前感谢所有愿意帮助我的人。
同时问的问题太多了。我会尽量说得更具体一些,否则你会得到模糊的答案。
关于主要问题,您需要了解SignalR身份验证和授权
基本上,您可以将[Authorize]
属性添加到要保护的方法(如CreateRoom
(中。这些仅对登录用户可用。您不需要处理会话或进行任何检查,SignalR将为您完成。
未标记为[Authorize]
的方法是"匿名的",这意味着任何用户都可以调用它们。
加入聊天室是如何完成的?
你可以为每个房间保留一个静态的客户端列表,并自己管理连接和断开连接。或者更好的是,您可以使用SignalR组。
有一个很棒的(高级的(工作聊天应用程序叫Jabbr.net,它是用SignalR制作的。您可以获取源代码并在那里找到所有答案
我想您可能不知何故错过了理解SignalR的概念和功能。因此,您需要再次检查SignalR,因为它基本上用于在.NET.中创建聊天应用程序
你可以在互联网上搜索的东西有:*使用SignalR创建聊天应用程序。*使用SignalR创建群聊。
群组将帮助您管理授权和未授权用户聊天。
因此,这些搜索将为您提供所有问题和理解的最佳想法。