Nun, es gibt wirklich eine Menge anderer Technologien zu verwenden, zum Beispiel hat JMS verschiedene Implementierungen, die out of the Box funktionieren.
Sockets sind Low-Level-Bausteine der Netzwerkkommunikation, wie Drähte im Stromnetz Ihres Hauses. Ja, sie sind altmodisch, ja, wir wollen sie wahrscheinlich nicht sehen, aber sie sind dort und werden aus gutem Grund dort bleiben.
Auf Sockets können Sie z. Wählen Sie die HTTPUrlConnection, die den Großteil des HTTP-Protokolls implementiert. Trotzdem liegt es in Ihren Händen, Timeout-Richtlinien festzulegen, was ich sehr nützlich und extrem schmerzhaft finde.
http://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/
Sie sind frei, über eine Abstraktionsebene zu bewegen, und verwenden Sie eine fertige REST-Bibliothek wie folgt aus: http://unirest.io/java.html
Das Beispiel verbindet oben auf einen Server, konfiguriert einen HTTP-Abfrage-String durchführen, die Anforderung (Timeout, Kodierungen, die alle das Chaos unter der Haube) und schließlich die Antwort im JSON-Format in ein paar Zeilen erhalten:
Unirest.post("http://httpbin.org/post")
.queryString("name", "Mark")
.field("last", "Polo")
.asJson();
Heute REST verfügbar eine große Menge an Web-Service verwenden Protokoll, das eine einfache Befehlsantwort über HTTP ist. Wenn Sie eine Chance haben, schlage ich vor, REST zu verwenden, da Sie leicht verfügbare Implementierungen auf Client- und Serverseite finden können, und Sie müssen das Rad auf der Befehlsprotokollschicht auch nicht neu erfinden.
Auf der Clientseite ist Unireest sehr praktisch.Auf der Serverseite hatten wir wirklich großartige Erfahrung in der 1.2.xx Serie von Play! Rahmen. Aber es gibt Tausende von diesen Dingen da draußen, suchen Sie einfach nach "REST".
Wenn Ihre Anforderungen grundlegend sind, gibt es keinen Grund, über Socket hinauszugehen. – EJP
Sie sollten sich die nicht blockierende Socket-Behandlung in NIO ansehen. –
Oder Sie könnten von einem "Basic Message/Response Protocol" wegkommen. – Stefan