使用 HTML5 和 ASP .NET MVC 后端的 Web 浏览器中的标记工具实时共享文档预览

Real-time shared document preview with markup tools in web browser using HTML5 and ASP .NET MVC back-end

本文关键字:工具 实时 共享 文档 浏览器 ASP HTML5 NET MVC Web 后端      更新时间:2023-09-26

我在使用 HTML5 功能的 ASP .NET MVC 网站的共享文档(pdf、docx、xlsx(查看和标记工具(简单线条、形状、箭头(时遇到问题。我需要在网站中实现某种谷歌文档,以便最终用户可以查看同一文档并对其进行标记,并在浏览器窗口中看到它正在被标记,供所有实时查看此类文档的其他用户使用。最好的解决方案是使用某种点对点通信,而不涉及服务器端(如WebRTC(。所有标记功能似乎都是使用 HTML5 画布完成的。服务器上的文档存储不是必需的。所有标记都存储在连接会话中。

现在,我发现了一些非常复杂和昂贵的方法,如crocodoc和groupdocs,它们实际上提供了我的项目所需的更多功能。

请提出任何可以帮助我实现目标的建议

感谢所有回复!

对于实时交互,您可以使用 SignalR

ASP.NET SignalR 是面向 ASP.NET 开发人员的新库,它使 轻松开发实时 Web 功能。SignalR 允许 服务器和客户端之间的双向通信。服务器可以 现在,当内容变为 可用。SignalR 支持 Web 套接字,并回退到其他套接字 适用于旧版浏览器的兼容技术。SignalR 包括用于 连接管理(例如,连接和断开连接事件(, 对连接和授权进行分组。

对于纯点对点,您可以使用webRTC API。

http://www.webrtc.org/reference/architecture

请注意,点对点是低级架构。您将需要编写服务器通常为您处理的功能:跨浏览器兼容性、API 挂钩、防火墙隧道、会话维护等。

顺便说一句,尽管您似乎正在远离客户端-服务器架构,但在实时同步同时来自多个客户端的 html canvas 命令时,客户端-服务器非常有用。

使用中央服务器解决的一个极其棘手的问题是为每个客户端的命令添加时间戳。如果没有时间戳,画布绘制命令将在不同的客户端中以不同的顺序发出。这会导致客户端没有相同的显示。

因此,鉴于您正在使用MVC,我的建议是使用SignalR asp.net。SignalR 使用服务器充当无缝管道,以允许客户端到客户端的通信。它是客户端-服务器,其行为类似于点对点。但 SignalR 还可以为你处理所有必需的低级别功能。