Chatserver schreiben in PB?

Für allgemeine Fragen zur Programmierung mit PureBasic.
pogi02
Beiträge: 131
Registriert: 30.10.2004 00:52
Wohnort: Österreich
Kontaktdaten:

Beitrag von pogi02 »

MVXA hat geschrieben:
pogi02 hat geschrieben:1. Wie empfange ich die Nachricht die gesendet wurde mit dem Browser?
In dem du bei deinem HTTP Chat Server einfach für jeden eingelogten Browser einen Buffer anlegst. In dem Buffer steht dann seine persönliche HTML Datei mit den Nachrichten. Wenn ein Browser eine Anfrage sendet überprüfst du die IP/Browser Agent. Dann sendest du seinen spezielen Buffer in HTML form.
Rofl

Deine Antwort ist zwar gut überlegt doch das verbraucht doch viel zu viel Speicher stell dir mal vor da sind 20 User oder mehr online ^^

Also jetzt mal eine kleine Funktion wie ich mir das vorstelle

Code: Alles auswählen

SEvent.l = NetworkServerEvent() ;Serverevent
  
ClientID = NetworkClientID() ;ClientID beziehen
  
Select SEvent 
            
 Case 2 
      
   ReceiveNetworkData(ClientID, Buffer, 1000)
   massage=PeekS(Buffer)
      
      
    
       
        ResetList(Client())
       While NextElement(Client())
         
        SendNetworkData(Client()\id, massage) 
       
       Wend
endselect
Also wenn ein neuer User verbindet werden die Daten in Client() gespeichert

Und wenn jetzt der´Server was empfängt dann sendet er die Massage an alle Clienten:

While NextElement(Client())

SendNetworkData(Client()\id, massage)

Wend

Würde das so funktionieren?? Also das ist jetzt nur so eine schnelle funktion wie ich mir das vorstelle.

Er würde aber allen Clienten (Browser) eine Nachricht schicken das problem ist ja nur wie lasse ich diese Daten von den Browser verarbeiten?
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Najo. Musste halt im HTTP Head angeben, dass der Client die Verbindung aufrecht erhalten soll. Dann kannst du dem Browser immer was nach senden.
Bild
honk
Beiträge: 6
Registriert: 20.09.2004 18:57
Wohnort: leider hier
Kontaktdaten:

Beitrag von honk »

hi

ich kannte da mal einen Java-Applet Chat der vorher runtergeladen werden musste und dann eben als eigenes Fenster also als fast "echtes" Programm lief 8)
Also damit kannst du eine stetige Verbindung aufbauen und PB schickt dann von sich aus einfach Daten zu den Clients.
Vielleicht kannst ja ein bissel Java, da gibts ja auch noch http://www.selfjava.de :)
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Um vom Browser aus Daten zum Server zu schicken, gibt es AFAIK doch bei den HTML-Formualren (<form>) einen "submit"-button, mit dem man die Daten zum Server schickt. Wie sollte PHP das denn sonst hinkriegen? dann muss der Server diese Antwort abfangen und verarbeiten. Um dem Client daten zu schicken, generiert der Server eine neue HTML-Seite, sobald er neue Daten erhalten und verarbeietet hat. Diese generierten HTML-Seiten müssen dann (wie von anderen Usern schon gesagt) das META-Tag "refresh" mit einer Zeitangabe von max. 1 Sekunde enthalten, sodass der Chat dauernd refreshed/reloaded wird. Wer nicht die ganze Seite neu laden will, bindet das Ganze halt als <iframe></iframe> ein.

cya
Pascal
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Iframe ändert doch nichts an der tatsache, dass das Teil immer wieder neu geladen wird. Es ist dann bloß nicht mehr die ganze Seite.

Das Problem ist halt, dass der Traffic so viel höher ist, als wenn nur die neuen Daten gesendet werden.
Aber ohne Flash/Java lässt sich das wohl nicht umgehen.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

@bluejoke: da hast du natürlich recht.
pogi02
Beiträge: 131
Registriert: 30.10.2004 00:52
Wohnort: Österreich
Kontaktdaten:

Beitrag von pogi02 »

aha also so einen Java ähnlichen Chat kann man mit PB nicht schreiben? also das man nicht immer reloaden muss?


EDIT:

Ist es mit PB möglich übers Internet Sounds und Musik zu senden?
Also ich meine jetzt nicht die ganze Sounddatei sondern nur den Sound selber so wie bei einem Webradio?
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Zu deiner EDIT-Frage: Ja
Zu deiner Java-Frage: Nein, das ist nicht möglich. Auch für Java brauchst du schließlich ein spezielles Plugin.
Du kannst natürlich ein Plugin schreiben, mit dem das dann funktioniert, aber wofür das Rad zweimal erfinden? Ich würde einfach Flash nehmen, dass kann man sogar ganz gut dynamisch (d.h. zur Laufzeit deinse Tools, also kann man beispielsweise über PHP Flash programmieren) erstellen.
Damit gelingt ein Chat auch ganz gut (siehe z.B. icq.com)
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
pogi02
Beiträge: 131
Registriert: 30.10.2004 00:52
Wohnort: Österreich
Kontaktdaten:

Beitrag von pogi02 »

Hallo


Ähm soweit ich weiss braucht man bei Java aber kein Plugin.

Du meinst vielleicht bei einem Java Applet? Aber bei einem Java Servlet oder wie das heisst braucht man das nicht (aber bin mir nicht sicher ^^)


Und zu deiner Antwort bezüglich meines Edits alo könnte man einen Webradio mit PB schreiben?
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Java-Servlet? Noch nie gehört... Also einfach, dass der Java-Code auf dem Server ausgeführt wird? Dann macht das genau das selbe wie ein PB-Programm, und der Browser muss reloaden.
Mit einem Browser ohne Java oder Flash (oder etwas vergleichbarem) kann man jedenfalls keinen Chat ohne Reload verwirklichen.

Webradio ist auf jeden Fall möglich, du musst halt wissen, an welchen Port du wie welche Daten sendest
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Antworten