Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Enterprise Java > Chatähnliche Ausgabe von Serverausgaben
Antwort
 
Themen-Optionen
Alt 17.10.2005, 14:24   Nach oben    #1
ehli75
Benutzer
 
Benutzerbild von ehli75
 
Registriert seit: 30.11.2004
Beiträge: 97
Standard Chatähnliche Ausgabe von Serverausgaben

Mahlzeit !

Hat von euch schon mal einen Chat geschrieben, der OHNE clientseitige Logic (also ohne Java bzw. JavaScript) auskommt ?
Ich will eigentlich keinen Chat machen ... aber im Endefeckt is's so was ähnliches ... lasst mich erklären:

Ich habe eine Weboberfläche einer Intranetanwendung, mit der Serverseitig Skripte gestartet werden sollen. Das wird sicherlich nicht das Problem werden. ABER die Ausgaben der Skripte, die normaler Weise im Konsolenfenster auftauchen, sollen nun wie in einm Chat (quasi) zeitgleich im Browser zu sehen sein. Nun ist halt das Problem, wie man die Daten nach und nach in den Browser bekommt - aber eben ohne JavaScript bzw. 'nem Applet. Es sollte auch vermieden werden, dass die Seite ständig nachgeladen wird ... denn dann geht das ja nur ruckweise ... und ausserdem unnötiger Netzwerktraffic, wenn 'ne Weile mal nix passiert.

Kann mir da jemand weiter heilfen ???

Michael
ehli75 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.10.2005, 17:08   Nach oben    #2
Zero83
Neuer Benutzer
 
Registriert seit: 07.10.2005
Beiträge: 23
Standard

Hallo..ich hab mich vor ein paar Wochen mit dem gleichen Thema rumgeschlagen

mit JavaScript und PHP oder was ähnlichen könntest du das ganze ohne neu zu laden umsetzen ...der hohe Traffic bleibt jedoch.

hmm aber ohne nichts gehts halt nie ...wie hast du dir das denn vorgestellt?
bzw. was ist denn serverseitig vorhanden?

...aber eig. nein sieht schwarz aus...
Zero83 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.10.2005, 09:40   Nach oben    #3
ehli75
Benutzer
 
Benutzerbild von ehli75
 
Registriert seit: 30.11.2004
Beiträge: 97
Standard

Serverseitig habe ich Java.
Aber das muss doch eigentlich gehen ... denn wenn man im Browser Java und JavaScript ausschaltet gehen die meisten Chatsysteme noch immer ... und immerzu beim Server nachfragen tun die nicht ... das würde man ja im HTML-Text der Seite sehen ... aber in den Chats is's so, dass die Seite "nie fertig ist mit laden" ... und wenn ich mir den HTML-Text anschauen will kommt da nix. Kann das sein, dass der Server immer weiter schreibt, und nie ein End of File liefert?
Weiß vielleicht noch einer einen Ausweg - ich darf auf keinen Fall Clientseitige Logik (wie JavaScript) verwenden.
ehli75 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.10.2005, 14:40   Nach oben    #4
Böreck
Neuer Benutzer
 
Registriert seit: 14.10.2004
Beiträge: 25
Standard

Hallo, du kannst es ja mal mit einem Servlet probieren, dass ein Listener-Objekt für die Nachrichten irgendwo einträgt und dann danach auf diesen Listener wait aufruft. Soll nun eine Nachricht ausgegeben werden, muss auf den Listener ein notify aufgerufen werden (und das auch synchronisiert auf den Listener, wenn keine Nachricht verloren gehen darf).
Zur Ausgabe auf der Seite muss man den PrintWriter im Servlet flushen. Ich weiß aber nicht ob alle Browser so unfertige HTML-Seiten bereits anzeigen. Außerdem weiß ich nicht, was passiert, wenn der user die Seite schließt. Möglicherweise hat man dann lauter rumrödelnde Threads, die Ausgaben für nicht mehr existierende user produzieren. Außerdem müsste man irgendwie die Listener entfernen, zu denen es keine wartenden Threads meht gibt. Durch die Nebenläufigkeit muss man sowieso immer genau aufpassen, was man macht.
Hier eine Beispielfunktion, wie sie in einem Solchen Servlet stehen könnte:
Code:
    private void showNews(HttpServletResponse response) throws IOException{
        PrintWriter out = response.getWriter();
        out.println("<html><head></head><body>");
        out.flush();
        NewsListener listener = new NewsListener();
        NewsDistributor.addNewsListener(listener);
        try {
            synchronized(listener){
                while(true){
                    listener.wait();
                    out.print(listener.getNews());
                    out.flush();
                }
            }
        }
        catch (InterruptedException e) {
            out.println("Ooos, error!</body></html>");
            e.printStackTrace();
        }
    }
Ich hoffe, das hilft irgendwie

Gruß,
Max
Böreck ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.10.2005, 16:14   Nach oben    #5
ehli75
Benutzer
 
Benutzerbild von ehli75
 
Registriert seit: 30.11.2004
Beiträge: 97
Standard

Danke Böreck !!
Das klappt wunderbar. Hatte zuerst ein paar Probleme mit'm Tomcat ... aber letztendlich hat sich rausgestellt, dass Tomcat die Ausgaben noch zwischenspeichert (2 kB) und erst dann anfängt mit rausschreiben ... und wenn er dann einmal angefangen hat zu schreiben, geht's auch munter weiter.
Muss nur noch sehen, dass er irgendwann aufhört mit schreiben ... aber das dürfte ja net schwer sein.

DANKE nochmal.
Michael
ehli75 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[C]Was bedeutet "%*d" in einer Ausgabe mit printf() Mirod Sonstige Programmiersprachen 2 15.09.2006 12:56
Ausgabe von Prozess ehli75 Allgemeine Java-Programmierung 0 26.10.2005 11:57
Chat - Ausgabe bricht ab Chr!s PHP-Programmierung 12 05.10.2005 22:47
\n \r in der Ausgabe bob PHP-Programmierung 9 05.10.2005 09:42
while - ausgabe nur bis zum vorletzten DasMööp PHP-Programmierung 15 20.09.2005 13:16


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:33 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44