我目前正在尝试使用 HTML5 Canvas 编写在线绘图程序。
问题是,我需要将当前 Canvas 保存在全局某个地方。静态变量可以工作,但它们不能在 Webgarden 中共享。这会导致创建两个不同的绘图。
我必须以某种方式创建一个共享的新应用程序对象。我想我需要一个外部应用程序来保存它们。
1) 如何用我自己的应用程序对象替换应用程序对象?
因此,我要么必须编写自己的程序并通过远程处理调用它,要么使用 ASP.NET session 状态服务器作为应用程序变量。不过,我更喜欢 session 状态服务器。
2) 如何将 session 状态服务器用于我自己的变量?我如何访问它?
我在网上到处搜索,只找到了上面提到的想法,但没有帮助执行它们。
我主要使用 VB.NET 编写代码,但我也可以理解 C# 代码的示例。
有关我的应用程序的一些信息:
客户端有两个彼此重叠的 Canvas 对象。顶部的 Canvas 对象用于绘制内容,其下方的 Canvas 对象最终保存绘图。
当绘制某些内容时,它会以其 Base64 表示形式发送到服务器。 (获取数据Uri)
服务器通过 Graphics 对象将此图形放在存储的 Bitmap 对象之上。
如何将更改分发给其他客户端,我现在正在研究这个问题。我要么传输完整的图片,要么传输提交的每一个更改。这应该通过服务器推送来实现。如果这不能彻底工作,我将不得不保存更改并添加时间戳。
当前实现的链接,当前未从服务器获取更改(但它们会传输到服务器...由于某些实例到达一个实例,某些实例到达网络花园中任一 w3wp 上的另一个实例)的问题是这里:http://anno.sinni800.ath.cx/Canvas/Collab
最佳答案
另一种选择是使用分布式缓存,例如 memcached。
关于c# - Webgarden 的全局应用程序变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2050911/