Чат-клиент с GWT

Как лучше всего создать чат-клиент JS с GWT? Немного, с чем у меня возникли проблемы, - это сохранение и передача сообщений. Должен ли я хранить сообщения в БД и проверять БД на наличие новых сообщений? Есть ли лучший способ сделать это?


person Matthew H    schedule 16.03.2010    source источник


Ответы (2)


Как предложил Джа, вы определенно хотите использовать Comet/Server Push/Reverse AJAX/многие другие имена. Я собрал ваши параметры для GWT в другое сообщение.

Если вы хотите быстро начать, взгляните на NGiNX_HTTP_Push_Module — там есть простой для понимания пример чата. Вам придется написать некоторую обработку протокола самостоятельно, но это довольно простая задача.

Если вы также используете Java на серверной части, более простым решением будет rocket-gwt или cometd.

person Igor Klimer    schedule 16.03.2010
comment
Спасибо! Я посмотрю на это - Server Push / что-то, что выглядит идеально для того, чего я пытаюсь достичь. Еще одна вещь, если вы все еще здесь: как я должен хранить сообщения на сервере между их отправкой и получением? - person Matthew H; 17.03.2010
comment
Как предложил Джа - используйте для этого простой класс, возможно, только с геттерами и сеттерами. Вы также можете заглянуть в JavaScript Overlay Objects, чтобы упростить обработку ответов JSON от сервера: code.google.com/webtoolkit/doc/latest/ - person Igor Klimer; 17.03.2010
comment
Кстати, вы знаете, будет ли это работать в Google App Engine? Спасибо! - person Matthew H; 21.03.2010
comment
Если вы используете Google App Engine, то я предполагаю, что ракета-gwt - это то, что вам нужно - APE и push-модуль nginx требуют специализированных серверов, которые, насколько я знаю, недоступны в GAE. С другой стороны, Rocket-GWT должен довольно хорошо интегрироваться, но у меня самого нет большого опыта работы с GAE, так что это просто предположение :) - person Igor Klimer; 21.03.2010

Вы можете либо заставить подключенных клиентов постоянно опрашивать сервер на наличие новых сообщений, либо посмотреть на Server Push: http://code.google.com/p/google-web-toolkit-incubator/wiki/ServerPushFAQ

person jah    schedule 16.03.2010
comment
Нет, в этом нет необходимости, если только вы не хотите хранить какую-то историю чатов на сервере. - person jah; 17.03.2010
comment
Извините, я запутался (тоже новичок в GWT). Должен ли я просто использовать стандартную структуру данных для хранения сообщений? - person Matthew H; 17.03.2010
comment
да. Взгляните на класс NewMessageEvent из приложения чата GWT: code.google.com/p/gwt-eclipsecon-chat/source/browse/trunk/src/ - person jah; 17.03.2010