Chat+Demon

avenger_msoft

Новичок
Chat+Daemon

Привет всем!

windows 2003 + php 4.4.3 + Apache 2.2.
Есть чат (php+firebird). Есть Демон на Delphi (протокол http). Пусть адрес чата http://avenger:8080, а адрес демона http://avenger:8000.
Чат построен на фреймах. В одном из фреймов держится постоянное сокетное соединение с демоном, обмен данными в направлении Client<-Daemon.

Как можно уйти от порта 8000?

У меня есть две идеи:
1) Создать виртуальную ссылку типа http://avenger:8080/daemon
2) Создать файл php, например http://avenger:8080/get_socket_data.php

В 1-м случае с помощью mod_proxy создать "туннель" на http://avenger:8000. Т.е.
Client<->mod_proxy<->Daemon

Во 2-м случае программу, у которой будет "бесконечный" срок выполнения; которая будет забирать данные от Демона и отсылать их клиенту. Client<->get_socket_data<->Daemon.
get_socket_data.php
PHP:
while true do {
...
Забираем данные от Демона
...
Отправляем клиенту
...
}
Недостатки:
В 1-м случае: Невозможность отследить отсоединение клиента на Демоне, в силу организации mod_proxy; невозможность получить данные на клиенте, пока не будут отправлены все данные Демоном.

Во 2-м случае: Для каждого клиента будет "работать" свой get_socket_data.php; дополнительные затраты ресурсов сервера.

Может есть другие предложения?

Не ужели ни у кого нет ни каких мыслей?

-~{}~ 23.08.06 18:47:

Не ужели ни кто не думал как можно уйти от определенного порта?

К примеру, на сайт http://tc.edu-soft.ru:8080 можно зайти не совсех машин... (так как порт 8080 закрыт firewall-ом)...
 

voodoo

Новичок
Вообще, есть еще SocketForwarding. Под *никсами работает (может и не везде + разные имплементации).
Под вин не пробовал, но судя по статьям на msdn, должно быть возможно.
 
Сверху