Принцип сервера длинных опросов (идентификация клиента) - PullRequest
2 голосов
/ 22 ноября 2010

Я хочу создать простой длинный сервер опросов в node.js, где связь будет основываться на запросах jsonp. Я понимаю, что клиент отправляет запрос, а сервер удерживает ответ до тех пор, пока некоторые данные не будут готовы или не достигнут определенный таймаут, а затем будет сделан новый запрос от клиента, чтобы все продолжалось. Как только первый запрос сделан, идентификатор сеанса генерируется и сохраняется для хранения списка активно подключенных клиентов. Теперь, как мне определить, что любой другой запрос после первого ответа от сервера клиенту принадлежит какому клиенту в моем списке активных соединений?

Я могу себе представить, что это происходит так: сначала ответ от сервера отправляет назначенный идентификатор сеанса клиенту, а затем он идентифицируется на основе этого идентификатора при выполнении следующих запросов. Но я думаю, что этот подход может быть легко использован и уязвим для кражи личных данных.

Ответы [ 2 ]

1 голос
/ 22 ноября 2010

Я бы использовал cookie .

Следующим шагом для меня было бы использование SSL, если я беспокоюсь о краже ID.

0 голосов
/ 22 ноября 2010

Вместо того, чтобы писать весь этот код самостоятельно, я бы предложил вам воспользоваться работающим и протестированным решением:
https://github.com/LearnBoost/Socket.IO-node
https://github.com/LearnBoost/Socket.IO

Socket.IO обрабатывает все соединения для вас и автоматически выбирает наилучший из возможных методов соединения, например, WebSockets, и изящно отступает, если они недоступны.

...