Moin!
Damit geht's nicht, denn der ist als reiner HTTP-Client nur darauf ausgelegt, selbst etwas anzufordern und darauf eine Antwort zu bekommen.
Das stimmt nicht.
Doch, das stimmt.
Zwar ist http ein stateless-Protokoll, aber es gibt diverse Möglichkeiten, einen Server-Client-Push auszuführen.
Ein Server-Push erfordert, dass zum (vorher undefinierten, daher beliebigen) Zeitpunkt der Server und der Client in Verbindung miteinander stehen.
Es ist aber ureigenste Eigenschaft von HTTP, die Verbindung nach Abwicklung aller Datenübermittlungen wieder zu beenden. Von daher wird später, wenn der Zeitpunkt gekommen ist, keinerlei HTTP-Verbindung mehr bestehen, die man reaktivieren könnte, um den Push durchzuführen.
Java (z.B. mit den bekannten "Pushlets"), Ajax (= Javascript, aber leider nur mit Firefox, der IE hat die sog. Ready-States nur mangelhaft implementiert hat) und und und.....
Keine Ahnung, was die bekannten Java-Pushlets sind. Auch Ajax bietet da absolut nichts. Alle Tricksereien laufen darauf hinaus, künstlich einen einmal begonnenen HTTP-Request so lange hinauszuzögern, dass er noch läuft, wenn der undefinierte Zeitpunkt des Pushes gekommen ist.
Das bedeutet allerdings: Der Server muß für alle Clients parallel mindestens einen Prozess dauerhaft bereithalten. Und das dürfte in deinem Intranet schon zu ziemlichen Problemen führen, denn der standardmäßig konfigurierte Maximalwert an Prozessen des Apaches ist 150 Stück. Bei 150 Clients bist du also schon am Anschlag angekommen.
Außerdem ist es alles andere als ressourcenschonend, riesige Apache-Prozesse für derart banale Aufgaben zu verwenden. Da ist es in der Tat simpler, einfach das zu tun, was man mit HTTP natürlicherweise tun muß: Dauerhaft pullen, nicht pushen. Dürfte auf dem Server enorme Ressourcen einsparen - und Traffic im Intranet interessiert ja sowieso eher nicht. Zumal man erfolglose Pulls ja datensparend gestalten kann, und im Zweifel auch nicht alle zehn Sekunden pullen muß.
- Sven Rautenberg
"Love your nation - respect the others."