Jump to content

Problem mit JavaScript Bindings mit dem RED Brick


PreinfalkG

Recommended Posts

Seit dem ich den RED Brick (mit Ethernet Extension) in Verwendung habe, bekomme ich die JavaScript Bindings nicht mehr zum laufen!

 

Zuvor hatte ich einen MasterBrick mit der Ethernet Extension in Betrieb und da gab es keine Probleme. Hab auch auf die neue Version (2.0.4) der JavaScript Bindings upgedatet.

 

Selbst eure Testseiten (z.B. Dual Relay Bricklet) funktionieren bei mir mit dem RED Brick nicht mehr -> siehe Screenshot !!!

 

Habt ihr eine Idee?

lg. Günter

TinkerforgeJavaScriptProblem.thumb.png.b0277f33f2244acfb14a96dadbd5b865.png

Link to comment
Share on other sites

Hallo borg

 

So, nach einigen Stunden hab ich jetzt festgestellt, dass es mit Internet Explorer v11.0 bei mir funktioniert und mit allen anderen Browsern (Chrome 39, Firefox 34, iPhone und iPad) NICHT funktioniert!

 

Konfiguration:

Eurer Online 'TemperatureIR_Bricklet_JavaScript_ExampleSimple.html' mit RED Brick, 2x MasterBrick und einigen Bricklets.

 

Zusatz: Meine WebSeite welche ich vor dem RED Brick mit einem MasterBrick und Ethernet Extension hatte habe ich auf JavaScript Binding v2.0.4 gehoben und funktioniert jetzt auch nur mehr mit Internet Explorer!

 

siehe Screenshot mit alles drei Browsern ...

 

lg.

Günter

TinkerForgeJavaScriptProblem.png.2fa4de69a2febd3b44662cf0cccce5ec.png

Link to comment
Share on other sites

Puh, das muss ich mir am Montag genauer angucken. Ich bin gerade kurz die Commits durchgegangen, IMO hat sich seit dem allerersten Release nichts am eigentlichen Verbindungsaufbau geändert (dieser schlägt ja fehl hier).

 

Es ist auch komisch, dass die JavaScript Bindings schuld zu sein scheinen. Die WebSocket Server Implementierung im Brickd und im Master Brick ist komplett von uns, da kann ich mir gut vorstellen, dass wir irgendwo RFC 6455 nicht 100%ig korrekt implementieren und es nach einem Browser-Update auf einmal nicht mehr geht. Für die Bindings nutzen wir die WebSocket Implementierung des jeweiligen Browsers. Warum sollte sich da etwas ändern nach einem Update der Bindings? Sehr komisch.

 

Wenn du Lust hast das genauer zu debuggen könntest du versuchen die Kommunikation mit Wireshark aufzunehmen. Einmal mit einer funktionierenden und einmal mit einer nicht-funktionierenden Bindings Version. Interessant wäre dabei dann zu sehen wo genau im WebSocket Handshake der Unterschied ist zwischen den beiden.

 

Ich komme da sonst frühstens am Montag oder Dienstag zu.

Link to comment
Share on other sites

Problem gefunden und gelöst.

 

Es kann passieren, dass brickd schon anfängt Callbacks über den WebSocket rauszuschicken, bevor der Handshake mit dem Browser fertig ist. Dies sieht dann für den Browser nach einem fehlerhaften Handshake aus und der er bricht die Verbindung ab.

 

Voraussichtlich Ende der Woche gibt es eine neue Version es Images, die dann auch diesen Fix beinhaltet.

 

Bis dahin kannst du über den Console Tab im Brick Viewer von Hand eine korrigierte Version einspielen. Dazu einfach folgende Befehle eingeben:

 

sudo wget -O /usr/bin/brickd_new "http://www.tinkerunity.org/forum/index.php?action=dlattach;topic=2788.0;attach=2071"
sudo mv /usr/bin/brickd_new /usr/bin/brickd

 

als Password tf eingeben und nach dem Download oben rechts über den System Knopf Brick Daemon neustarten.

 

Edit: wget Befehl korrigiert.

brickd

Link to comment
Share on other sites

  • 9 years later...

Hallo, habe aktuell das gleiche Problem:

ExampleCallback.js sowie die html Seite stammt von tinkerforge. Mit dem Brickviewer kann ich die Daten des outdoor weather bricklets auslesen, allerdings nicht mit dem Browser.

Die Konsole von Firefox zeigt den oben beschriebenen Fehler in der gleichen Zeile wie oben in Tinkerforge.js

Im brickdaemon log erscheint der Verbindungsversuch beim Klick auf den "Start example" button, allerdings wird sofort abgebrochen (Package too long). Im Textfeld dann Error 13.

Websocket habe ich aktiviert, das zeigt auch der Bricklogger an.

Habe mit dem Raspian sowie unter Windows ausprobiert. Mit Edge, IE, Firefox sowie Chrome kein Erfolg.

Würde mich auf Unterstützung freuen. Da der log den Anmeldeversuch (zombie) anzeigt, vermute ich einen Fehler in den Bindings?!

 

VG

 

Edited by abinbetrieb
Websockets aktiviert (Info ergänzt)
Link to comment
Share on other sites

Ich habe die JavaScript Binding im Browser getestet und kann dein Problem leider nicht nachstellen. Die Bindings funktionieren bei mir.

Ich habe dieses Beispiel einfach direkt im Browser ausgeführt, ohne es vorher runterzuladen. Ich habe nur die UID meines Outdoor Weather Bricklets eingetragen:

https://www.tinkerforge.com/de/doc/Software/Examples/JavaScript/OutdoorWeather_Bricklet_JavaScript_ExampleCallback.html

Ich verwenden die aktuellen Softwareversionen: brickd 2.4.5 und Outdoor Weather Bricklet Firmware 2.0.4.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...