Node.js 白板应用程序的客户端或服务器端 HTML5 画布渲染?

2024-06-19

我认为一个小白板 Web 应用程序将是提高我的 Node.js 和 JavaScript 技能的好方法。我在网上看到了一些,这是有道理的,因为它似乎非常适合这种堆栈。

然而,花点时间思考一下,我想知道客户端和服务器在这种 Web 应用程序中的角色。偶然发现节点画布 https://github.com/LearnBoost/node-canvas,我更加迷茫了。具体来说,客户端和服务器应该负责什么?

如果服务器能够渲染到画布,它是否应该接受并验证来自客户端的输入,然后通过以下方式将其广播给所有其他连接的用户套接字.io http://socket.io/?这样,服务器就保留了一个master-canvas 元素。一旦新用户连接,服务器只需将其画布推出该客户端 - 使其跟上所绘制的内容。

任何关于实施的指导——具体的或哲学的——都值得赞赏。

Thanks!


I wrote http://draw.2x.io http://draw.2x.io,它使用node-canvas(以前是node-cairo,我自己编写的)以及socket.io。

按照我设计应用程序的方式,客户端基本上根据用户输入生成所有笔划。这些依次由画布抽象处理,画布抽象支持我自己定义的操作和参数的子集。如果该层接受绘画模块产生的任何输入,它们也会通过 socket.io 发送到服务器。

在服务器上,我有相同类型的画布层包装节点画布。因此,这将在内存中复制用户的输入,最终使将状态图像发送到新客户端成为可能。在此之后,笔划将——服务器应用程序等待的参数/上下文验证——发布到其他连接的客户端,这将重复与上面相同的过程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js 白板应用程序的客户端或服务器端 HTML5 画布渲染? 的相关文章

随机推荐

  • 从 Rails 3.1.3 升级到 Rails 3.2.1。资产错误

    我尝试将应用程序从 Rails 3 1 3 升级到 Rails 3 2 1 但资产出现问题 我有这样的错误 ActionController RoutingError No route matches GET assets logos op
  • JQuery 事件处理程序未触发

    请看我的代码 Html table tr td valign top style padding top 10px Body br br a href expand a td td td tr table
  • Pyinstaller:如何包含 importlib_resources 使用的包中的资源

    我有以下项目结构 package1 init py some py package2 init py some py static data init py file1 txt file2 txt my script py my scrip
  • 占据花车的地板

    我发现了两种在 Python 中占据发言权的方法 3 1415 1 and import math math floor 3 1415 第一种方法的问题是它返回一个浮点数 即3 0 第二种方法感觉很笨拙而且太长 在 Python 中是否有替
  • WCF 5.0 和 oData 3.0 API 不适用于 Azure 表存储

    在我迁移 WCF5 0 应用程序以与 azure 集成后 我无法将 oData 3 api 与 azure 表存储一起使用 我收到这个错误 定义了类型 System Data Services Client DataServiceRespo
  • JavaScript WebSocket.send 方法会阻塞吗?

    如果我要发送大量Blob or ArrayBuffer通过 JavaScriptWebSocket通过其send方法 是否send方法调用会阻塞 直到发送数据为止 还是会复制数据以异步发送 以便调用可以立即返回 一个相关的 未回答的 问题是
  • Qt 相当于 .NET 数据绑定吗?

    Qt 中是否有相当于 NET 数据绑定的功能 我想使用引用数据库中特定实体的 QString 填充一些组合框和其他小部件 但是 如果我可以将数据绑定到这些字符串 而不是基于新的组合框选择再次查询数据库 或者基于构建我自己的将使用 QStri
  • aiohttp 线程缓慢

    我复制了代码如何在线程中运行 aiohttp 服务器 https stackoverflow com questions 51610074 how to run an aiohttp server in a thread 它运行良好 所以我
  • Haskell 中的多态函数作为参数

    我有一个带有两个构造函数的 ADT 一个包裹着一个Double和一个包裹着Integer 我想创建一个函数 它采用一元函数Numtypeclass 并返回一个函数 该函数将该一元函数应用于我的 ADT 的内容 我试过这个 data X Y
  • 删除克隆元素上的淘汰赛 js 绑定

    我正在使用 knockout js 模板绑定功能将项目集合渲染到元素
  • 使用 DFT 的一维热方程产生不正确的结果 (FFTW)

    我正在尝试使用复数到复数 IDFT 求解一维热方程 问题在于单个时间步后的输出似乎不正确 我在下面提供了一个简单的示例来说明该问题 I initialize the temperature state as follows 频域中的初始模式
  • orchard cms路由问题

    我创建了一些自定义内容类型 其中包括路线部分 以便我的内容管理员可以编辑项目的别名 我没有运气配置一条路线 使我自己的控制器能够为这些项目的请求提供服务 核心 Routable 模块中到 ItemController 的路径的路由优先级为
  • 以编程方式将 MenuItem 添加到菜单的特定位置或组

    我有一个
  • 在 PowerShell 中过滤 TreeView 节点

    我的 TreeView 中有大量节点 并且有一个文本框可以过滤它们以突出显示匹配的搜索 然而 它有点混乱 因为它显示了所有其他节点 并且在我更改搜索后 它使所有节点都展开 我正在尝试做这样的事情 https www codeproject
  • RecognizerIntent 不起作用; “缺少额外的呼叫包”

    我在 Android 2 2 上使用 RecognizerIntent API 时遇到问题 当我使用以下代码调用 API 时 Intent intent new Intent RecognizerIntent ACTION RECOGNIZ
  • 如何在 HTML 中制作三角形?

    我想使用基本的 CSS 在 HTML 页面中制作三角形 我正在使用需要时间加载的三角形图片 因此 我想减少页面的加载时间 HTML 不可能 但 CSS 可以 例子 div class div
  • JSP - 如何从数据库呈现 html(或 jsp)代码

    我有一个由多个用户组使用的jsp 要求是每个用户组在访问页面时都希望有自定义的外观和感觉 带有区分参数 我们建议允许用户将他们需要的html转储到数据库表中 jsp将确定用户组并显示相应的html 有关如何做到这一点的任何指示 示例 如果用
  • 数据库未在客户端系统上运行的 C# Windows 窗体应用程序

    我用 C 开发了一个使用 SQL Server 数据库连接的 Windows 窗体应用程序 我在 NET Framework 4 0 和 SQL Server 2008 R2 中开发它 我的应用程序正在使用应用程序根目录中存在的本地数据库
  • 仅使用 Context 而不是 Activity 实例显示对话框

    如果我使用 Activity 实例 我可以显示对话框 但当我使用上下文或应用程序上下文实例时 对话框不会显示 AlertDialog Builder builder new AlertDialog Builder activity buil
  • Node.js 白板应用程序的客户端或服务器端 HTML5 画布渲染?

    我认为一个小白板 Web 应用程序将是提高我的 Node js 和 JavaScript 技能的好方法 我在网上看到了一些 这是有道理的 因为它似乎非常适合这种堆栈 然而 花点时间思考一下 我想知道客户端和服务器在这种 Web 应用程序中的