Краткое описание задачи: я хочу, чтобы один вошедший в систему пользователь мог отправить мгновенное короткое текстовое сообщение другому зарегистрированному пользователю. Решение должно быть легко масштабируемым и не слишком требовательным к ресурсам с точки зрения пропускной способности и нагрузки на сервер (и $$).
Первой идеей было сделать опрос клиентов, но от этой идеи быстро отказались, поскольку она не отвечала требованию масштабируемости. Итак, после этого я занялся исследованиями и натолкнулся на ряд концепций, включая сокеты, node.js, xmpp. Объем информации немного ошеломляющий, поэтому я надеялся, что какой-нибудь совет укажет мне правильные направления. Надеюсь, что-нибудь с легкодоступными решениями хостинга.
@ epascarello:
спасибо за быстрый ответ. Я сделал, но не подробно. Прежде чем углубляться в какие-либо технологии, я хочу знать, что это именно то, что мне нужно.
Большинство примеров сосредоточены на мгновенном чате, но мои требования несколько иные. Мне не нужен каждый зарегистрированный пользователь, чтобы увидеть сообщение, но только один конкретный пользователь, для которого оно предназначалось, в то время как, скажем, в системе может быть зарегистрировано 100 000 пользователей ...
@ Саид Нимати:
Спасибо! Да, я в значительной степени понимаю два варианта взаимодействия клиент-сервер и пришел к выводу, что вытягивание - это запрет. Сейчас я пытаюсь найти наиболее масштабируемую (это основная предпосылка) и (надеюсь) простую реализацию push-опции. Например, опция сокета относительно проста, но кажется, что она не будет хорошо масштабироваться из-за перегрузки сервера (или я ошибаюсь). Файл node.js (по крайней мере, по описанию концепции) должен быть лучше, но я хотел бы получить подтверждение этому предположению. С xmpp - я даже не уверен, насколько это относится к моей задаче и как к ней подойти.
@ andyuk:
Энди, спасибо. Да, socket.io - это то, что я нашел, когда проводил исследования. Насколько я понимаю, для этого требуется серверный модуль, который должен работать на хосте. Знаете ли вы, если это возможно, чтобы работать на любом сервере, или мне нужно искать специализированную хостинговую компанию? Сайт socket.io по какой-то причине не работает на моем ПК (ни IE, ни FF).