Acro Media: Drupal with WebSockets for Real-Time Synced Displays

Planet Drupal - 7. Juni 2018 - 16:45

The situation: I'm the primary maintainer of the Commerce Point of Sale module and have been building a customer facing display feature for the Commerce 2 version. So, I have two separate pages, one is a cashier interface where a cashier enters products, the second is a customer facing screen where the customer can watch what products have been scanned, review pricing, and make sure everything is correct.

The problem: Since products can be scanned through quite quickly, it was imperative that the customer facing display update very quickly. The display needs to match wha's happening in near real-time so that there is no lag. Unfortunately, AJAX is just too slow and so I needed a new solution.

The solution: WebSockets seem like a great fit.

Design

AJAX - Too slow!


WebSocket - Fast!


The socket server can either not bootstrap Drupal at all, or bootstrap it only once upon load, making it able to relay traffic very quickly.

Dependencies

I only needed one dependency for this, Ratchet, which is a PHP library for handling WebSockets and is easily installed via Composer.

Setup

The WebSocket server is actually very simple, it finds and loads up the autoload script for Drupal, similar to how Drush does it.

We bootstrap Drupal, just so we can load a few config settings.

We terminate the Drupal kernel, since we don’t need it just for ferrying traffic back and forth and it will probably leak memory or something over a long time if we use it a bunch, since Drupal isn’t really meant to run for ages. I did try it with Drupal running the whole time and it did work fine, although this wasn’t under any real load and only for a couple days.

Now all that we have to do is setup the service.

All the details of our service come from the class we pass in, which basically hooks in the different server events. I’ll leave the details of that outside of this article as none of it is Drupal specific and there are lots of tutorials on Rachet’s site: http://socketo.me/docs/hello-world

Javascript

On the JavaScript end, we connect to the WebSocket using the standard interface.

I used a few mutation observers to monitor for changes and then passed the changes to the WebSocket to relay. You could do this however you want and probably some nicely integrated JS or even a React frontend would be a lot cleaner.

Resources

Related module issue: https://www.drupal.org/project/commerce_pos/issues/2950980
Ratchet PHP Library: http://socketo.me/

Amazons WM-Angebote am Mittwoch: Beamer, Blu-Ray, Haushaltsgeräte

heise online Newsticker - 7. Juni 2018 - 16:30
Am dritten Tag der Amazon-Schnäppchenwoche gibt es Beamer, UHD-Blu-Ray-Player, Filme und Serien sowie Haushaltsgeräte günstiger. Wir zeigen die echten Angebote.

USB-Hubs mit SuperSpeedPlus lassen weiter auf sich warten

heise online Newsticker - 7. Juni 2018 - 16:30
In Taipeh führt Genesys Logic einen USB-C-Hub mit USB 3.2 Gen 2 vor, der fast schon eine Dockingstation ist - aber auf fertige Geräte muss man weiter warten.

Alexander Gerst fliegt zur ISS: Der Start im Livestream

heise online Newsticker - 7. Juni 2018 - 16:00
Alexander Gerst startet am Mittwoch zur ISS und Interessierte können das im Netz und TV mitverfolgen. Nicht nur die ESA und die NASA zeigen den Start live.

Apple-Softwarechef: Portierte iOS-Anwendungen werden "richtige" Mac-Apps

heise online Newsticker - 7. Juni 2018 - 16:00
Craig Federighi hat sich zum neuen UIKit-SDK für macOS geäußert, mit dem sich iPhone- und iPad-Anwendungen ab nächstem Jahr auf den Mac holen lassen.

groups.drupal.org frontpage posts: Drupal Security team response to recent news articles relating to SA-CORE-2018-002 and SA-CORE-2018-004

Planet Drupal - 7. Juni 2018 - 15:51

Various media outlets are reporting that a large number of Drupal sites are still vulnerable to the recent highly critical core vulnerabilities SA-CORE-2018-002 and SA-CORE-2018-004.

Those reports are all based on the same source. The source investigated the contents of CHANGELOG.txt of a large number of sites and assumed all sites reporting a version lower than 7.58 to be vulnerable.

Checking the contents of CHANGELOG.txt is not a valid way to determine whether a site is vulnerable to any given attack vector. Patches distributed by the Drupal security team to fix the issues were widely used, but did not touch CHANGELOG.txt or any version strings defined elsewhere. There are also other mitigations that vendors have provided which would also not affect CHANGELOG.txt but would protect the site.

We believe the presented numbers to be inaccurate. We consider it to be misleading to draw conclusions from this sparse information. The Drupal project has a long history of a reliable coordinated disclosure security program. For the past 4 years, the Drupal Security Team has provided support to journalists covering our releases and policies and is available for further enquiries.

If you are a member of the press and want the Drupal Security Team to comment, please contact security-press@drupal.org.

Amazon EKS: Elastic Container Service für Kubernetes jetzt verfügbar

heise online Newsticker - 7. Juni 2018 - 15:30
Der Amazon Elastic Container Service für Kubernetes soll Entwicklern den Einsatz von Kubernetes in der AWS-Cloud einfacher gestalten.

Chromatic: Why You Should Consider Drupal – Painless Migrations

Planet Drupal - 7. Juni 2018 - 15:30

Making content migrations relatively painless lowers the bar immeasurably in making the switch to a platform like Drupal.

Mac & i Heft 3/2018 jetzt im Heise-Shop

heise online Newsticker - 7. Juni 2018 - 15:00
Reisen mit dem iPhone • Selbst streamen • Passwort-Manager • KI • iPad 2018 • Externe Grafikkarten • Webcams • iPhone-Knacker • Gefälschtes Apple-Zubehör

DSGVO: Union will teure Abmahngebühren rasch aussetzen

heise online Newsticker - 7. Juni 2018 - 15:00
Die CDU/CSU-Fraktion im Bundestag plant, möglichst zügig die teuren DSGVO-Abmahngebühren zu untersagen. Unternehmen sollen so aber nur eine Schonfrist bekommen.

Nach Gerichtsurteil: Trump gibt seine Twitternachrichten für geblockte User wieder frei

heise online Newsticker - 7. Juni 2018 - 14:00
US-Präsident Donald Trump knickt ein und gewährt gesperrten Twitter-Nutzern wieder Zugang zu seinen Tweets – aber nicht allen.

DNA-Webseite MyHeritage: Hacker kopiert Daten von 92 Millionen Nutzern

heise online Newsticker - 7. Juni 2018 - 13:30
Auf der Ahnenforschungs- und DNA-Test-Webseite hat es ein Datenleck gegeben. Dabei wurden auch Passwörter abgezogen. Die Ursachen sind bislang noch unklar.

macOS-Apps: Apple wird zum "Notar"

heise online Newsticker - 7. Juni 2018 - 13:30
Künftig will der Konzern auch Anwendungen kontrollieren, die nicht im Mac App Store vertrieben werden – zumindest auf ihre Sicherheit.

Neuregelung beim Recycling: Wenn Blinkschuhe zu Elektroschrott werden

heise online Newsticker - 7. Juni 2018 - 13:30
Ab Mitte August zählen wegen einer Gesetzesänderung viele Gebrauchsgegenstände zum Elektroschrott und müssen getrennt entsorgt werden.

APFS kommt auch für Festplatten und Fusion-Drive-Macs

heise online Newsticker - 7. Juni 2018 - 13:30
Bislang läuft das neue Apple-Dateisystem standardmäßig nur auf Macs mit SSD. Mit macOS 10.14 soll sich das ändern.

Peter Thiel über DSGVO: Europas Eingeständnis der Niederlage – "wie Berliner Mauer"

heise online Newsticker - 7. Juni 2018 - 12:30
Die DSGVO ist "ein ganz dummes Eigentor", meint der US-Investor Peter Thiel. Sie sei ein Eingeständnis, dass Europa in der Internet-Industrie verloren habe.

Amazons WM-Angebote am Mittwoch: Beamer, Blu-Ray, Haushaltsgeräte

heise online Newsticker - 7. Juni 2018 - 12:00
Am dritten Tag der Amazon-Schnäppchenwoche gibt es Beamer, UHD-Blu-Ray-Player, Filme und Serien sowie Haushaltsgeräte günstiger. Wir zeigen die echten Angebote.

iOS 12: Wie Apple gegen die iPhone-Sucht vorgehen will

heise online Newsticker - 7. Juni 2018 - 12:00
"Digital Wellness" ist das große Thema bei der Entwicklerkonferenz WWDC 2018. Apple möchte Nutzern dabei helfen, ihre Bildschirmzeit zu begrenzen.

Server-Netzteil mit 99 Prozent PFC-Wirkungsgrad

heise online Newsticker - 7. Juni 2018 - 12:00
Unter anderem durch den Einsatz von Galliumnitrid-(GaN-)Schalttransistoren will Seasonic die Wandlungsverluste starker Netzteile weiter mindern.

Gebührenkampf: Diskussion über die Zukunft des ORF in Österreich

heise online Newsticker - 7. Juni 2018 - 12:00
In Österreich wird über die Finanzierung des öffentlich-rechtlichen ORF diskutiert, den sich die rechte FPÖ als Zielscheibe ausgesucht hat.