Acties:
  • 0 Henk 'm!

Anoniem: 449708

Topicstarter
Hallo GoT,

Ik heb, na het lezen van het devschuur & programmering beleid toch besloten deze vraag in dit subforum te plaatsen en niet in het Webdesign, Markup & Clientside Scripting subforum omdat mijn omgeving niet puur en alleen om een clientside applicatie gaat (en daarnaast stonden in dit subforum meer vragen gerelateerd aan web sockets, wat ik ook een goede indicatie vond voor de relevantie van mijn vraag).

TL; DR; Ik heb ook al een Stack Overflow post hierover gemaakt, maar ik wil mijn probleem toch graag bij GoT kwijt :>

Ik ben voor m'n afstudeerproject bezig met het ontwikkelen van een ipad applicatie die communiceert met een arduino boardje waar een websocket server (deze github repo) op draait (samen met een Ethernet shield + nano WiFi router. Ja, ik heb andere WiFi oplossingen geprobeerd, maar dat werkte niet samen met de ArduinoWebSocketServer, die afhankelijk is van de Ethernet library en ik ben geen C- of C++ programmeur die dan zelf even de abstracte dependancy classes weghacked en het laat werken op, pak em beet, een WiFi Xbee.)

De applicatie gebruikt websockets als communicatie medium. In google chrome op m'n macbook met osx Lion werkt het prima, op een iPad 2 met IOS 5.1.1 werkte het ook prima!

de communicatie verloopt via een lokaal WiFi netwerk, niet via internet.

Laptop: 192.168.1.27
ipad3: 192.168.1.31
arduino: 192.168.1.200

Nu ben ik dus met een iPad 3 aan het testen, ook IOS 5.1.1, en het werkt niet. Ik weet werkelijk waar niet waar ik moet beginnen met zoeken naar de reden of een oplossing... Ik heb met m'n magere netwerkcommunicatie kennis Wireshark opgestart, en bekeken wat er gebeurt (in promiscuous mode, niet in monitoring mode want daar heb je blijkbaar een extra of aparte driver voor nodig?). Het lijkt er op dat er tussen de ipad3 en arduino geen handshake start. maar waarom...

Iemand tips die ik kan proberen, of weet in welke richting ik moet zoeken? Andere (betere, wireshark heeft zeker ook bugs) analysetools? een minor release die ik gemist heb waarbij support voor websockets drastisch veranderd was in de tussentijd dat ik van ipad2 naar ipad3 ging (zat een weekje of minder tussen)?

Acties:
  • 0 Henk 'm!

  • windwarrior
  • Registratie: Januari 2009
  • Laatst online: 12-07-2024

windwarrior

ʍıupʍɐɹɹıoɹ

Ik weet niet zozeer een oplossing voor je probleem, maar het is belangrijk te isoleren waar het probleem zit, als je een tweede netwerkkaart (dus bijvoorbeeld een usb netwerkkaart) hebt kan je ethernet bridgen op je laptop, waarmee je kan met wireshark wat er vanaf de arduino naar je wifirouter, en van je wifirouter naar je arduino gestuurd wordt bekijken. Kloppen de adressen daar?

Verder kan je misschien kijken of je een wifi hotspot met je laptop kan opzetten, en dan wifi en ethernet te bridgen, om zo te kijken of de communicatie aan de ipad kant klopt, komen er uberhaubt berichten door, en zo ja tot waar.

(Ik heb verder minieme kennis van websockets en het bridgen van wifi/eth, ik hoop dat je met deze (misschien onzinverhalen) verder kan komen in het googlen :) )

Acties:
  • 0 Henk 'm!

Anoniem: 449708

Topicstarter
Hele goede tips. informatie over het bridgen ga ik opzoeken, moet te vinden zijn. Ik begrijp nu nog niet waarom dat nodig is, eerlijk gezegd. In de tussentijd eens kijken wat de arduino allemaal ontvangt en verzend, zowel voor de ipad3 als laptop! Bedankt voor deze tips, dit is alvast een richting.

Nog meer tips / mogelijke oplossingen zijn van harte welkom!

Acties:
  • 0 Henk 'm!

  • abort_
  • Registratie: Januari 2006
  • Laatst online: 15-07 13:07
http://wiki.phonegap.com/...honeGap%20for%20iOS%20FAQ Zie de derde Q. Wellicht dat dit het probleem is :)?

Acties:
  • 0 Henk 'm!

  • __fred__
  • Registratie: November 2001
  • Laatst online: 31-07 07:07
Je kunt eventueel ook fiddler gebruiken icm een proxyinstelling in je ipad, alhoewel ik betwijfel of het probleem zich op http niveau bevindt.

Acties:
  • 0 Henk 'm!

Anoniem: 449708

Topicstarter
@abort_ Dat dacht ik eerst ook, maar die whitelist filtert voor zover ik weet alleen HTTP(S) verkeer.
Op de ipad2 had ik geen aparte whitelist entry voor lokaal websocket verkeer nodig, het werkte out of the box. Om te verifieren dat het hier toch niet aan ligt heb ik het net even voor de zekerheid geprobeerd, maar het ligt hier inderdaad daar niet aan.

@__fred__ Ja dat zijn handige tools, ik gebruik zelf Charles web debugging proxy, ik neem aan dat het eenzelfde soort tooltje is. Maar als ik in WireShark al geen verkeer zie na de ARP, dan ga ik dat in een web debugging proxy al helemaal niet vinden toch?

@windwarrior, Bridgen, hoe doe je dat precies op OSX? op windows weet ik wel hoe dat moest maar sinds ik 2 jaar OSX gebruik en dat nog nooit nodig heb gehad :-)

Acties:
  • 0 Henk 'm!

  • __fred__
  • Registratie: November 2001
  • Laatst online: 31-07 07:07
Anoniem: 449708 schreef op maandag 30 juli 2012 @ 01:49:
@__fred__ Ja dat zijn handige tools, ik gebruik zelf Charles web debugging proxy, ik neem aan dat het eenzelfde soort tooltje is. Maar als ik in WireShark al geen verkeer zie na de ARP, dan ga ik dat in een web debugging proxy al helemaal niet vinden toch?
Nee, waarschijnlijk niet. Tenzij je bij je Ipad 2 ook niets ziet in wireshark, dan ligt het probleem eerder in wireshark of de ontvangende computer.

Acties:
  • 0 Henk 'm!

  • windwarrior
  • Registratie: Januari 2009
  • Laatst online: 12-07-2024

windwarrior

ʍıupʍɐɹɹıoɹ

Erm ik heb even voor je gezocht, en in mac OSX heet bridging "Bonding", en het bijbehordende superuser thread.

Verder is het alleen handig als je vermoed dat het in het verzenden misgaat, bridging kan je gebruiken om tussen fysieke apparaten het netwerkverkeer te bekijken, dus puur of de pakketten die op de lijn gezet zijn wel correct blijken :).

Acties:
  • 0 Henk 'm!

Anoniem: 449708

Topicstarter
@windwarrior okee tof, bedankt voor de uitleg!

Ik denk dat ik er achter ben wat de oorzaak is. Ik heb wederom getest op een iPad 2 en daar werkt m'n applicatie ook niet meer. Wel nog lokaal op chrome en safari (beiden webkit implementaties).
Ook werkt het vanaf een andere laptop / computer door naar mijn (lokaal draaiende) webserver te navigeren met chrome en safari.

Het komt waarschijnlijk simpel en alleen hierdoor:
http://caniuse.com/websockets
Apple gebruikt voor de implementatie van webSockets een oud protocol. Heel erg vervelend, ik heb dit waarschijnlijk gemist omdat een oudere versie van de webSocket server die ik gebruik, ook de oude implementatie gebruikte. Na een update daarvan werkte mijn applicatie wel nog in google Chrome en Safari,
maar niet meer op zowel de ipad2 als ipad3.

Ik zou dit moeten verifieren door het verkeer wat van een ipad2 / 3 ontvangt te monitoren, maar daar heb ik op het moment niet het materiaal of de expertise voor. Met Wireshark kan ik namelijk wel zien wat de ipad2/3 verstuurt, maar niet wat hij ontvangt (zonder een extra netwerkkaart).

http://caniuse.com/websockets geeft ook aan dat in IOS 6 full support (lees: eindelijk het CORRECTE protocol) wordt geimplementeerd. ik zou dus daarmee kunnen testen.
Hopelijk willen de eigenaren van de ipads (ze zijn niet van mij helaas) het risico nemen dat hun iPad daardoor gaar wordt (lees hier disclaimer van Appel) zodat ik achter mijn antwoord kan komen 8)

In ieder geval, bedankt voor de tips!

[ Voor 3% gewijzigd door Anoniem: 449708 op 31-07-2012 17:01 . Reden: linkje toegevoegd ]

Pagina: 1