В настоящее время я пытаюсь запрограммировать онлайн-программу рисования, используя холст HTML5.
Дело в том, что мне нужно, чтобы текущий холст был сохранен где-то во всем мире. Статические переменные работают, но они не распространяются через Webgarden. Это приводит к созданию двух разных чертежей.
Мне нужно каким-то образом создать новый объект приложения, который является общим. Я решил, что мне понадобится внешняя заявка.
1) Как заменить объект приложения на свой собственный?
Так что либо мне придется сделать свою собственную программу и позвонить ей с удалением или использованием сервера состояний сеанса ASP.NET для переменных приложения. Я пользуюсь сервером состояний сеанса.
2) Как использовать сервер состояния сеанса для моих собственных переменных? Как мне получить доступ к нему?
Я искал высоко и низко в Интернете и только нашел идеи, упомянутые выше, но не помогал их выполнению.
Я в основном код в VB.NET, но я также могу понять код С# для примеров.
Немного информации о моем приложении:
Клиентская сторона имеет два объекта холста друг над другом. Верхний объект холста, который мы использовали для рисования материала, объект холста под ним держит рисунок в конце.
Когда что-то нарисовано, оно отправляется на сервер в его представлении base64. (GetDataUri)
Сервер помещает этот графический объект поверх сохраненного объекта Bitmap через объект Graphics.
Как изменения распространяются на других клиентов, я сейчас работаю над этим. Либо я передаю полную картину или каждое внесенное изменение. Это должно работать через Server Push. Если это не сработает, мне придется сохранять и изменять временные метки.
Ссылка на текущую реализацию, которая в настоящее время не получает изменения (но они передаются на сервер... С проблемой, что некоторые из них достигают одного экземпляра, некоторые достигают другого на любом w3wp в webgarden), с сервера здесь: http://anno.sinni800.ath.cx/Canvas/Collab
Другой вариант - использовать распределенный кеш, например memcached.