2012-03-29 3 views
0

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.
+0

Ich bin neugierig zu wissen, was Sie dafür getan haben. –

+0

@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

Antwort

0

Interessante Frage.

Ich weiß, dass einige C- und/oder C++ WebSocket-Bibliotheken in der WebSocket-Community (in der IETF-Diskussionsliste erwähnt) in Entwicklung sind, wenn Sie in diese Richtung gehen wollen.

Es könnte Sie interessieren zu wissen, dass einige Teile von Node.js tatsächlich in Javascript geschrieben und während des Build-Prozesses als integrierte Module kompiliert werden, aber ich kenne keine Möglichkeit, dies für Ihren eigenen Code zu erreichen kurz davor, den Build zu hacken.

Da dies OSX ist, können Sie Knoten neben Ihrem eigenen Code und beliebigen Modulen, die auf einer statischen v8-Bibliothek basieren, in Ihrer .app. Dies wäre eine ziemlich enge Verbindung, obwohl nicht ganz das, wonach Sie fragen.

Es ist auch möglich, Ihre Erweiterung (oder einen Teil davon) als C++ - Modul zu erstellen, das von Node und v8 geladen wird.

Verwandte Themen