Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[C# / HTML] Data pushen via HTTP lukt alleen met IE?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met een probleem waar ik echt niet uitkom...

Ik heb een applicatie in C# die dient als simpele HTTP server. Deze kan ik ook gewoon bereiken en kan inprincipe twee pagina's aan namelijk index.html en fetchData.

Wanneer index.html opgevraagd wordt, dan wordt deze pagina in de browser zichtbaar (overigens alle browsers dus dat werkt). In deze index.html zit een hidden iframe met een url naar dezelfde server maar dan met fetchData. Wanneer deze opgevraagd wordt door een client, wordt er een verbinding opengezet die oneindig lang doorgaat. Door deze verbinding wordt data verstuurd in de vorm van javascript die vervolgens uitgevoerd wordt door index.html omdat hier de functie instaat die aangeroepen wordt door fetchData (uiteraard met enkele argumenten die van belang zijn en waar het hele push verhaal om gaat).

Kortom:
index.html -> iframe naar fetchData link en javascript functie die de pushed data verwerkt
fetchData -> enkel <script type='text/javascript'>window.parent.updateAll(argument1, argument2)</script>

Nu werkt dit alleen op IE, in de functie in index.html zet ik de inhoud van een div naar een argument en deze veranderd prima mee wanneer er gepushed wordt... safari, firefox en mobile safari (waar het om draait) doet helemaal niets :(

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Laat ik voorop stellen dat HTTP Push altijd gaar is en geweest is. Het is een ranzige workaround en iets waar het HTTP protocol helemaal niet voor bedoeld is. Er zijn voldoende implementaties die (min of meer) wel werken, maar ook die geven meer dan eens gezeik.

Wil je toch doorzetten; dan is het eens handig om met zaken als Wireshark te kijken wat er nou over de lijn gaat en waar het mis zou (kunnen) gaan; heb je dat al eens gedaan? Verder kunnen we zonder de relevante info en/of code natuurlijk weinig...

En anders moet je eens gaan kijken of je niet beter kunt gaan pollen en evt. naar AJAX e.d. grijpen.

[ Voor 9% gewijzigd door RobIII op 23-10-2008 17:56 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Bedankt voor je reactie maar aangezien ik zelf alles stuur weet ik ook wat er over het netwerk gaat... bovendien is het raar dat het wel op IE werkt maar niet iets anders...

Ik weet dat HTTP push niet echt handig is maar omdat er haast bij geboden is helaas even de enige oplossing.

Ik zat even op pushlets.com te kijken en wat hun met bijv. de chat voorbeeld doen is ideaal en werkt op elke browser echter is deze gebouwd in JAVA. Zou zoiets niet kunnen werken met C#?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op donderdag 23 oktober 2008 @ 22:50:
Bedankt voor je reactie maar aangezien ik zelf alles stuur weet ik ook wat er over het netwerk gaat...
En jij maakt geen fouten? Ik zou, als je dan toch per-se HTTP push wil gebruiken, sowieso als 'double check' gewoon een sniffer loslaten; al is het maar om te verifeëren of alles wel goed over en weer gaat.
Verwijderd schreef op donderdag 23 oktober 2008 @ 22:50:
bovendien is het raar dat het wel op IE werkt maar niet iets anders...
Dat is nou net het hele eiereneten; heb je het straks werkend in browser X dan kapt Y er mee en werkt Y dan kapt X of Z er wel weer mee. Het is dus niet raar (imho) maar verwacht.
Verwijderd schreef op donderdag 23 oktober 2008 @ 22:50:
Ik weet dat HTTP push niet echt handig is maar omdat er haast bij geboden is helaas even de enige oplossing.
Euh, als er haast is zou ik sowieso al niet voor zoiets hebben gekozen; met wat "standaard AJAX" of andere meergebruikte technieken was je al lang klaar geweest in plaats van tijd steken in iets werkend proberen te krijgen wat in de basis al gedoemd is om te falen.
Verwijderd schreef op donderdag 23 oktober 2008 @ 22:50:
Ik zat even op pushlets.com te kijken en wat hun met bijv. de chat voorbeeld doen is ideaal en werkt op elke browser echter is deze gebouwd in JAVA.
Een JAVA applet die gewoon over sockets beschikt is wat anders dan HTTP Push :? De chat die ik zie is overigens ook geen HTTP Push maar gewoon een AJAX poll; precies wat ik dus al beschreef.
Verwijderd schreef op donderdag 23 oktober 2008 @ 22:50:
Zou zoiets niet kunnen werken met C#?
Vast, maar dan moet je eerst in C# iets gaan maken dat in je browser draait etc. etc. wat weer de nodige security pop-ups zal presenteren aan je gebruikers etc. en je zit gewoon het wiel vierkant uit te vinden...

[ Voor 9% gewijzigd door RobIII op 23-10-2008 23:25 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij