Ich arbeite an einem Projekt, das einen einfachen Lightweight-Ereignisserver benötigt (d. h. einen Server, der Ereignisse zwischen verschiedenen in Javascript implementierten Clientanwendungen übergibt). Zunächst schienen Node.js und Socket.io die perfekte Lösung zu sein, aber die Anzahl der Abhängigkeiten und Configs nahm etwas ab (siehe unten für Details zum Projekt und warum die Konfiguration ein Problem ist). Gibt es eine getestete und zuverlässige Möglichkeit, all diese Abhängigkeiten in eine einzige ausführbare Datei zu packen, die ohne zusätzliche Konfiguration ausgeführt werden kann? Wenn nicht, gibt es irgendwelche guten C/C++ WebSockets-Bibliotheken, die mit etwas wie Mongoose kombiniert werden könnten, um eine eigenständige ausführbare Datei zu erstellen?Zuverlässige Möglichkeit, Node.js + Socket.io in OSX ausführbar zu machen? (oder C/C++/Objective-C-Bibliotheken zur Verwendung als Alternativen)
Projektdetails
Basisanwendungsfall:
- Ein Moderator stellt sich auf dem Server auf ihre OSX Maschine.
- Eine Gruppe von 10 bis 20 Benutzern zeigen ihre mobilen Geräte auf eine Website auf den Computer des Moderators gehosteten
- Kommunikation erfolgt für die Dauer der Sitzung (etwa eine Stunde)
Grundanforderungen:
- Einfache Einrichtung: Der Moderator wird kein Entwickler sein und kann wenig bis keine technische Expertise haben. Alles, was das Terminal erfordert oder an Konfigurationsdateien oder Paketmanagern herumfummelt, ist kein Ansporn.
- Unzuverlässige Konfiguration: Die Maschine des Moderators wird in vielen verschiedenen Kontexten und von vielen verschiedenen Benutzern verwendet. Daher sollte das System nicht auf sehr spezifische oder unberührte Einstellungen angewiesen sein (dh möchte etwas mit vielen Abhängigkeiten vermeiden, die spezielle Umgebungsvariablen erfordern)
- Leistung und Sicherheit sind kein Problem: Der Server wird ausgeführt lokal mit einer kleinen Anzahl von vertrauenswürdigen Benutzern für eine kurze Zeit, so dass Sicherheit und hohe Leistung nicht wichtig sind.
Ich bin neugierig zu wissen, was Sie dafür getan haben. –
@Jess Bowers: Nichts. Dies wurde nur als nützlich erachtet, wenn es nicht zu viel Entwicklerzeit beanspruchen würde.Nach einiger Grundlagenforschung schien es zu kompliziert zu sein, um den Aufwand wert zu sein (was nicht heißen soll, dass es keinen einfachen Weg dafür gibt - wir konnten es einfach nicht in der vorgesehenen Zeit finden) – Mattia