繁体   English   中英

在Asp.Net Webforms中使用C#进行聊天和文件共享

[英]Chatting and file sharing using C# in Asp.Net Webforms

基于.NET Web表单的应用程序在c#中。 我需要在应用程序中添加一个模块,允许在登录用户之间聊天,用户可以在聊天期间共享文件,如Skype。 同时,我必须在会话期间,在我的服务器上保留每个会话和会话文件的永久记录。 我对模块的实现有一些了解,以达到预期的效果,但我确信这不是一个好的做法。 这是我的想法:

聊天:在用户聊天时,创建一个包含发件人ID,接收者ID和邮件内容的数据表。 当用户按下发送按钮或按Enter键时,将在数据表中插入一个新行,同时包含ID和消息内容,然后数据表将绑定到div等,以向两个用户显示更新的消息。 最后,在事件(如窗口关闭等)上,数据表将转换为XML,XML文件将永久存储在硬盘或数据库中。

文件传输:在用户按下输入/发送按钮的过程中,我们将检查消息内容,如果发送的消息是文件(带有一些扩展名),则将文件上传到服务器并提供下载链接到接收者。

我希望你明白我的观点。

问题:

1)我想异步共享文件,即传输到接收器并同时保存在服务器上。 可能吗?

2)如何告诉一个用户另一个用户正在打字?

有没有更好的方法来实现这个模块? 我应该有什么样的知识来正确理解和实施模块?

谢谢你的指导。

对于基于Web的实时聊天,当前的开源标准承载似乎是SignalR

关于该产品,这里有很多关于SO的讨论,这些应该有助于您朝着正确的方向前进。

就存储而言,这取决于您可用的基础架构以及您愿意为构建系统而产生的成本。

您可能会考虑使用RabbitMQ进行消息传递,如果您正确设置它,您可以附加队列侦听器,这些侦听器还将根据需要执行聊天记录。 (有很好的文档.NET / C#客户端已经可用于RabbitMQ。)您可能还想查看RabbitMQWikipedia页面

文件传输可能最好通过将文件上传到Web服务器并在那里临时存储,并通过其他聊天客户端下载文件的链接来完成。 这导致服务器增加其带宽要求。

您还可以考虑运行自己的XMPP服务器,并通过SignalR使用Web界面连接到XMPP服务器 它可以利用最多的功能来缩短产品上市时间。

你看过SignalR吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM