2010-10-04 2 views
1

У меня есть бэкэнд-приложение C++, закодированное через сокет TCP, к которому я подключаю PHP. Проблема в том, что соединение закрывается на каждой странице обновления, изменения и т. Д. Я хотел бы поддерживать соединение открытым для каждого клиента, делая что-то вроде $ _Session.Сохранение соединения для каждого клиента в php

+1

Если мы говорим об HTTP, единственное, что близко, это [Keep-Alive] (http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.keepalive.aspx) который ограничен ограниченным использованием и ограничен настройками сервера для определенных максимальных значений. Это может помешать некоторым накладным расходам, если сервер поддерживает их, но некоторые пересоздания по HTTP неизбежны, и я не понимаю связи с '$ _SESSION' (которая не сохраняется на существующей, но воссоздана из магазина по каждому запросу) , – Wrikken

ответ

2

Это не совсем то, на что предназначены PHP (или все веб-приложения и службы, если на то пошло). Это также означает попрошайничество для проблем с ресурсами в течение долгого времени, потому что большие PHP-процессы будут выполняться одновременно, а не работать в кратчайшие сроки по каждому запросу.

Что говорит против использования обычных механизмов сеанса из вашего приложения (например, для файлов cookie с идентификатором сеанса), таких как другие клиенты?

Я не являюсь экспертом в области C++, но я уверен, что большинство библиотек http могут обрабатывать «куки-файлы cookie», что по сути является всем необходимым для сохранения сеанса из вашего клиентского приложения.

2

Хотя я мало знаю о PHP, могу сказать, что веб-браузеры не предназначены для непрерывных подключений. Они должны повторно подключаться каждый раз, когда они делают запрос HTML.

В стандарте HTTP указывается, что сервер отключится от клиента после его отправки его запроса.

+2

Измените 'HTML' на' HTTP', и у вас есть точка (хотя сокет 'TCP' может не иметь никакого отношения к' HTTP', OP, говорящий о 'refresh' и 'change page', сильно указывает на это) – Wrikken

+0

Oh , и psst: 'Keep-Alive' .... – Wrikken

Смежные вопросы