Wat moet ik hier nog op zeggen na mbravenboer?
Toch wel iets misschien:
1) XML-RPC is heel mooi
2) Ik betwijfel of XML-RPC is wat je voor je flash-chatbox wilt gebruiken
3) Maar alles kan
Wat je in een chatbox eigenlijk wilt is een constante verbinding (met de server, of met de andere client(s)). Dit is echter niet waar XML-RPC voor bedoeld is, of beter gezegd, niet waar HTTP voor bedoeld is (XML-RPC maakt gebruik van HTTP).
In het HTTP protocol stuur je een REQUEST en krijg je een RESPONSE terug. Einde actie. En dan weer opnieuw.
Door deze aard van HTTP is XML-RPC een synchroon systeem: op
een REQUEST volgt altijd precies
een RESPONSE en de client moet wachten op die RESPONSE (wat lang of kort kan duren, misschien komt er zelfs nooit meer iets terug).
Je kunt van XML-RPC met enige moeite denk ik wel een asynchroon systeem bouwen, maar er komt dan enige complexiteit bij kijken die je gewoonlijk mooi mist met XML-RPC.
Verder is XML-RPC (wederom door het gebruik van HTTP)
stateless. Dit betekent dat een REQUEST geen context kent en dus altijd op zichzelf staat. Veel webapplicaties lossen dit op door uiteenlopende vormen van SESSIONS te gebruiken. XML-RPC heeft hier uit zichzelf geen voorzieningen voor, maar wanneer je hier wel behoefte aan hebt (wat ik me voor kan stellen bij een chatapplicatie) lijkt me dit vrij gemakkelijk te implementeren.
Mij lijkt een RPC techniek dus gewoon niet precies wat je zoekt, maar het is wel mogelijk.
Zoals mbravenboer al zag is het toch wel vrij noodzakelijk dat de server en de clients beiden REQUESTS kunnen ontvangen. In een XML-RPC call moeten ze dus beiden voor server en voor client kunnen spelen.
Je had zelf al een Flash implementatie gevonden van een XML-RPC Client, maar ik betwijfel of het mogelijk is om in Flash een XML-RPC Server op te zetten (en al helemaal of er iemand een implementatie voor je heeft).
De chatserver moet op zich niet zo'n probleem zijn. Voor Java zijn naar ik aanneem XML-RPC Servers en Clients te vinden. Verder zijn er voor Perl en Python uitstekende implentaties. Als er voor zo'n Server Side taal geen Client implentatie te vinden is, zou die nog niet eens zo moeilijk zelf te maken zijn. Alles wat je nodig hebt is de mogelijkheid tot het verzenden van HTTP Requests en een DOM (eigenlijk nog niet eens nodig).
mbravenboer: Je kunt het in principe zien als een eenvoudige vorm van web-services. Je kunt naar een web-service/procedure via het HTTP protocol een message sturen. Deze message is in een in XML-RPC formaat. Je krijgt ook antwoord terug in XML-RPC formaat.
Je communiceert dus volledig met behulp van kleine boodscappen met de XML syntax en volgens een standaard document-type.
Eigenlijk hoef je het niet eens zo te bekijken. Voor de meeste talen zijn er al implementaties voor een XML-RPC Client en Server, dus hoef je je helemal niet druk te maken om het XML-RPC formaat (wel leuk als je er iets van weet natuurlijk

).
XML-RPC is vrij eenvoudig en biedt niet erg veel complexe data-typen, maar de eenvoud ervan is ook juist de grote kracht van XML-RPC ten opzichte van bijvoorbeeld SOAP

.
Goed gezegd

Je kunt dit in principe allemaal doen door gewoon XML te parsen, maar je kunt beter proberen om een XML-RPC library te vinden voor de omgeving waarmee je werkt. Voor Java zijn dergelijke libraries er wel en die maken het leven een stuk makkelijker

.
Yep en niet alleen voor Java. In Python zit tegenwoordig zelfs al standaard een XML-RPC library dacht ik en er zijn er vele te vinden voor erg veel omgevingen.
loaded: Deze werkt d.m.v. continu refreshen van de ingelezen php-waardes en is ook een beetje erg database onvriendelijk! Kheb gehoord dat je met een xml-socketserver zoaals men dat noemde berichten vanaf surfer kan pushen naar iedere of 1 specifieke online surfer...
Dat is inderdaad niet echt een mooie manier voor een chatapplicatie. Je moet dus de mogelijkheid hebben om ook als server zelfstandig data te kunnen versturen naar alle clients. Dat kan met XML-RPC als je een Server implementatie vindt voor Flash.
Maar zoals ik al zei, dan nog blijven het onafhankelijke, asynchrone en stateless method-calls. Het liefst heb je voor een chatapplicatie toch een voortdurende verbinding (door misschien zelfs gelijkwaardige partijen, dus geen server-client rollen).
Ohh kweet dat er veel mogelijkheden zijn met java, maare dat kan ik op mijn gehoste domein volgens mij niet draaien!
Dat maakt niet uit, het kan (net zo) goed met iedere andere Server Side taal

php is clientside, dus dat wordt het waarschijnlijk ook niet, maar zal iets van vb of perl worden, ben ik alleen nog niet zo in thuis!
PHP is Server Side

VB kan het allebei zijn (Server Side in ASP)
Perl is Server Side
(hoewel eigenlijk al deze drie talen geen server- of clientdefinitie kennen natuurlijk

)
mbravenboer: De server moet in staat zijn om een HTTP message naar de client te sturen. Hiervoor moet je op de client dus een server-socket aanmaken die deze message kan verwerken.
Als dat dus mogelijk is met Flash en dat weet ik niet zo uit mijn hoofd.
XML-RPC is namelijk niets engs: het gebruikt gewoon het HTTP protocol voor transport. Je zult in je PHP code de berichten waarschijnlijk moeten parsen naar een DOM. Deze DOM moet je gaan gebruiken om te bepalen wat de client tegen jou probeert te zeggen.
ALs ik jou was zou ik toch meer naar de interfaces van de beschikbare libraries kijken dan wat die libraries ongemerkt precies voor jou uitvoeren. Want er zijn gewoon genoeg libraries, wat zij precies moeten doen is dus eigenlijk niet interessant
De meeste XML-RPC implementaties vertalen de native datatypen van de omgeving voor jou naar XML-RPC messages en andersom. Bijvoorbeeld wanneer je in Perl een array meegeeft aan je Method Call (de XML-RPC actie op een HTTP REQUEST, <methodCall>) wordt er voor jou dit van gemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
| <param>
<value>
<array>
<data>
<value><string>Dit is een string</string></value>
<value><boolean>1</boolean></value>
<value><int>2342</int></value>
</data>
</array>
</value>
</param> |
En wanneer je ditzelfde in een MethodResponse (<methodResponse>) terug krijgt, maakt je Perl XML-RPC libarty er mooi een Perl array van. Ook van het HTTP gebruik merk je niets, de libraries zijn dus erg gemakkelijk in het gebruik.
Houdt in de gaten dat XML-RPC in principe gewoon het remote aanroepen van een metode is. Het is dus ook het mooiste als je dit server-side en client-side zo implementeert en het verwerken van een bericht dus scheidt van het uitvoeren van de echte aktie

.
Inderdaad en hieraan denk ik eigenlijk niet gelijk bij chatapplicatie...