使用 HTML5 和 ASP .NET MVC 后端的 Web 浏览器中的标记工具实时共享文档预览
Real-time shared document preview with markup tools in web browser using HTML5 and ASP .NET MVC back-end
我在使用 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 还可以为你处理所有必需的低级别功能。
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 使用Facebook live API创建实时视频对象时的隐私设置
- 有任何可能将facebook实时信使整合到一个网站中
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- 如何在GoogleWeb工具包(GWT)中从JSNI调用接口(实例化)
- 删除CKEditor工具栏按钮,但不删除功能
- d3.js Chord图的动态工具提示
- 标记的实时更新,无需加载页面谷歌地图API V3
- 使用javascript进行实时图像处理
- jQuery工具验证器自定义效果-添加&消除影响
- Graphiti中是否有任何工具提示功能
- "工具提示"jQuery插件坏了
- 单元格的工具提示或标题不显示超过2000个字符
- 用于高级文本的格式化工具
- 无法在Chrome开发工具中实时编辑Javascript
- 引导工具提示在实时站点上不起作用,但在控制台上运行良好
- 使用 HTML5 和 ASP .NET MVC 后端的 Web 浏览器中的标记工具实时共享文档预览
- 像jsFiddle或开发人员工具一样的实时编辑,但要到服务器
- JavaScript:实时数据和图形,什么工具
- 如何在chrome webdeveloper工具中对Javascript进行实时更改