Netzwerk-Framework gesucht

siddie

Mitglied
Hallo zusammen,

wir entwerfen zur Zeit in einem kleinen Team einen etwas anderen Geocache. Dabei wollen wir nicht nur Hinweise und Dosen vor Ort verstecken, sondern das ganze Interaktiv gestalten, per App mit Internetzugang und GPS. Und mehrere Teams die gegeneinander antreten :)

Hierfür schreibe ich einen Server in Java der jeweils eine TCP-Verbindung für jeden Teilnehmer aufrecht erhält und die eingehenden Ereignisse verarbeitet / Rückmeldungen gibt. Bisher per NIO/select, was mir aber sehr umständlich erscheint. Ich müsste auch von einer Verbindung aus Nachrichten andere / alle anderen verschicken können. Hier hakt es manchmal noch.
Es wäre auch schön direkt JSON-nachrichten verschicken zu können.

Gibt es für den Anwendungsfall vielleicht schon ein Framework?

Optimal wäre es gleich den passenden Gegenpart für Android zu haben. Und nichts allzu kompliziertes, bin noch einsteiger.

Danke euch!
 

dayaftereh

Top Contributor
Hey, also für NIO in Java würde ich sofort Netty einsetzen. Dabei abstrahieren Netty die low Level API von Java und versteckt sie ziemlich nett, nach meiner Meinung. Natürlich musst du dann noch dein eigenes Protokoll entwerfen um Daten mit dem Server aus zu tauschen.

Ich weiß nicht wie dein App aufgebaut ist, aber vielleicht hilft ActiveMQ bzw. ZeroMQ, was JMS umsetzt. Dabei hat es ein eigenes Message Protokoll und bildet eine Art Publish / Subscribe System ab. so könnenen Clients untereinander kommunizieren oder direkt mit dem Server.
 

siddie

Mitglied
Hey, Netty sieht sehr gut aus, damit kann ich mich anfreunden :)
ActiveMQ scheint mir etwas zu mächtig zu sein.
Ich experimentiere grad mit GSON, also wandle die Nachricht in einen String und schicke diesen über die Verbindung. Probleme gibt es wenn mehrere Nachrichten (oder nur eine Halbe) beim lesen ankommen. Dann verweigert GSON das decodieren, weil es kein gültiges JSON ist.
 

dayaftereh

Top Contributor
Ich habe das gleiche auch mal entwickelt. Da zu habe ich meine Json Nachricht wie folgt aufgebaut.

Header + JsonString

Der Header ist immer 9 Bytes lang und besteht aus

Version (Byte) | Type (int) | Length (int)
  • Version ist die Protokoll Version= 1
  • Type ist der Nachrichten Type bzw Klasse für das decodieren mit Gson
  • Length ist die Länge des Json string in Bytes.
Mit Netty kannst du dir eine Decoder und Encoder Chain aufbauen die deine JsonStrings bzw. Direkt die Objekte zu oder von Bytes konvertiert.

Ps: nutzt du UDP oder TCP ?

EDIT

Hier habe ich schon mit Netty rum gespielt, vielleicht hilft es. https://github.com/dayaftereh/networkcheck
 

InfectedBytes

Top Contributor
du könntest auch KryoNet verwenden. Kryonet ist eine Netzwerk Bilbiothek, welche auf dem Serialisierungsframework Kryo aufbaut.
Dank der Serialisierung kannst du auch ganz bequem Java Objekte verschicken und musst nicht den Umweg über JSON gehen.
 

siddie

Mitglied
Danke euch!

Ich verwende bisher TCP, einfach weil es Nachrichten erlaubt die länger als ein Paket sind und bei Paketverlust erneut überträgt. Die Idee von @dayaftereh sieht schon sehr gut aus, das werde ich als kleine Programmieraufgabe gleich umsetzen :)

Es wird nur einen Android-Client geben. Mit iOS kenne ich mich gar nicht aus und habe auch nicht die Lust mich da einzuarbeiten.. Von daher wäre KyroNet eine gute Lösung.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I ActiveMQ-Messages übers Netzwerk Netzwerkprogrammierung 13
M Socket Netzwerk Übertragung zwischen 4 Clients Netzwerkprogrammierung 2
temi (Netzwerk-) Kommunikation zwischen Anwendungen. Wie? Netzwerkprogrammierung 5
W Das Netzwerk entfernen mit Wifi Manager Netzwerkprogrammierung 1
F Neuronales Netzwerk - Genetischer Algorithmus Netzwerkprogrammierung 0
windl Sporadische Aussetzer im Netzwerk Netzwerkprogrammierung 10
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
MaxG. Netzwerk Ping falsches ergebnis Netzwerkprogrammierung 7
T Netzwerk Login Felder ansprechen Netzwerkprogrammierung 1
B Netzwerk - Fernsteuerung Netzwerkprogrammierung 1
J Hilfe beim programmiern einer App zur Anmeldung im Wlan-Netzwerk Netzwerkprogrammierung 0
C Netzwerk Portzuweisungsproblem Netzwerkprogrammierung 0
I PingPong Spiel übers Netzwerk Netzwerkprogrammierung 1
M Verbindung zwischen zwei Pc in dem Selben Netzwerk Netzwerkprogrammierung 8
M PongSpiel Netzwerk Netzwerkprogrammierung 1
D Geräte im Lokalen netzwerk auflisten Netzwerkprogrammierung 1
fLooojava Daten an ein Arduino im selben Netzwerk senden Netzwerkprogrammierung 1
I Netzwerk FileShare Program Netzwerkprogrammierung 2
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
D Ermitteln ob WLAN-Netzwerk UDP unterstützt Netzwerkprogrammierung 1
O 4Gewinnt Multiplayer - Netzwerk Problem (TCP) Netzwerkprogrammierung 1
B WebSocket Verbindungsaufbau aus localen Netzwerk Netzwerkprogrammierung 2
S Bilder durch's Netzwerk usw ... Netzwerkprogrammierung 10
Kr0e Dezentrales Soziales Netzwerk Netzwerkprogrammierung 48
G Klassen über Netzwerk kommunizieren lassen Netzwerkprogrammierung 6
vandread Zugriff auf Soziales Netzwerk mittels Java? Netzwerkprogrammierung 4
P Automatische Host suche im Netzwerk Netzwerkprogrammierung 3
D Socket Class über Netzwerk verschicken Netzwerkprogrammierung 2
S Netzwerk Verbindungsproblem mit Cajo Netzwerkprogrammierung 5
c_sidi90 ideale Lösung, Screen Capture über Netzwerk Netzwerkprogrammierung 3
J Komplexes Netzwerk-Spiel im Internet Netzwerkprogrammierung 13
J ObjectInputStream im Netzwerk Netzwerkprogrammierung 8
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
A java im netzwerk anderen rechner runterfahren Netzwerkprogrammierung 3
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
M Netzwerk Programmierung Netzwerkprogrammierung 2
F Netzwerk-Designkonzept Netzwerkprogrammierung 2
D Ring-Netzwerk - wie fange ich an? Netzwerkprogrammierung 3
X Password übers Netzwerk schicken jPasswordField Netzwerkprogrammierung 2
M Socket Bilder über das Netzwerk übertragen Netzwerkprogrammierung 4
c_sidi90 Alle Rechner im Netzwerk ermitteln Netzwerkprogrammierung 17
D Netzwerk-To-Do-Liste Netzwerkprogrammierung 5
Semox Socket Selbstgeschriebenen Webserver im lokalen Netzwerk publizieren? Netzwerkprogrammierung 4
S Socket nach anderen clients im netzwerk suchen Netzwerkprogrammierung 3
T Netzwerk-Dateiübertragung optimieren Netzwerkprogrammierung 15
G Netzwerk Speed checken Netzwerkprogrammierung 3
L Socket Socketverbindung nur im lokalen Netzwerk Netzwerkprogrammierung 12
F Char über Netzwerk senden Netzwerkprogrammierung 6
P SocketServer im lokalen netzwerk suchen Netzwerkprogrammierung 2
I Objekte über das Netzwerk Netzwerkprogrammierung 5
B RMI RMI, Callback und Netzwerk Netzwerkprogrammierung 6
agent47 IP Adressen im Lokalen Netzwerk Scannen Netzwerkprogrammierung 7
S Netzwerk und Objekte Netzwerkprogrammierung 5
G Netzwerk IP Frage Netzwerkprogrammierung 4
Akrillo Datei per Netzwerk senden Netzwerkprogrammierung 10
W funktionen übers netzwerk nutzen Netzwerkprogrammierung 4
Kr0e Versenden von Daten übers Netzwerk Netzwerkprogrammierung 30
M upnp Device-Discovery im Netzwerk Netzwerkprogrammierung 5
T Administration von Software auf Clients im Netzwerk Netzwerkprogrammierung 6
H MySQL übers Netzwerk Netzwerkprogrammierung 9
A Probleme mit kleinem Netzwerk Programm Netzwerkprogrammierung 30
T Pfadangabe beim kopieren übers Netzwerk Netzwerkprogrammierung 5
G Verschlüsselte Strings über Netzwerk verschicken Netzwerkprogrammierung 19
D robustes Netzwerk Netzwerkprogrammierung 2
N HTML-Übertragung im lokalen Netzwerk mit Java - wie? Netzwerkprogrammierung 6
G Datei performant im Netzwerk verschieben Netzwerkprogrammierung 4
D BufferedImage über das Netzwerk senden Netzwerkprogrammierung 2
E Netzwerk Fehlererkennung Netzwerkprogrammierung 11
M Pc's im Netzwerk auflisten Netzwerkprogrammierung 2
T Welches Netzwerk ist am bestern für. Netzwerkprogrammierung 2
ModellbahnerTT Problem feste String ins Netzwerk zu geben Netzwerkprogrammierung 5
A IRC-Server für das lokale Netzwerk? Netzwerkprogrammierung 12
TheJavaKid Anzahl der Server im Netzwerk Netzwerkprogrammierung 7
R Spiel auf Netzwerk auslegen? Netzwerkprogrammierung 10
R Applet & Netzwerk Netzwerkprogrammierung 4
K netzwerk durchsuchen Netzwerkprogrammierung 10
A array übers netzwerk (anfänger) Netzwerkprogrammierung 8
T Möglichkeit über das Netzwerk eine Funktion zu starten? Netzwerkprogrammierung 2
flashfactor Dateien im Netzwerk kopieren Netzwerkprogrammierung 2
R File chooser übers Netzwerk Netzwerkprogrammierung 3
A Betriebssystem über Netzwerk ermitteln Netzwerkprogrammierung 11
B Netzwerk-IP´s sammeln Netzwerkprogrammierung 16
S Netzwerk übers Internet Netzwerkprogrammierung 30
J Brauche hilfe bei Projekt: Netzwerk Chatprogramm Netzwerkprogrammierung 12
M anpingen, liste aller IPs im netzwerk erhalten Netzwerkprogrammierung 5
S Spiel über Netzwerk. Netzwerkprogrammierung 7
O wie schnell kann java netzwerk sein? Netzwerkprogrammierung 7
D Netzwerk Betrachtung mit vielen Clients Netzwerkprogrammierung 2
D Netzwerk Game, bitte hilfe. Netzwerkprogrammierung 2
L netzwerk mit thread Netzwerkprogrammierung 3
B Netzwerk simulieren Netzwerkprogrammierung 2
8 ByteArray per Netzwerk verschicken Netzwerkprogrammierung 6
P Serialialiserte Objekte übers Netzwerk verschicken Netzwerkprogrammierung 9
T Client-Authorisierung-Netzwerk Netzwerkprogrammierung 4
G Verzeichnis eines Rechners übers Netzwerk auslesen Netzwerkprogrammierung 5
B Netzwerk Dokumentation Netzwerkprogrammierung 2
G MySQL über Netzwerk --> Problem Netzwerkprogrammierung 13
M Netzwerk spiel??? Netzwerkprogrammierung 9
B Nachrichten über das Netzwerk verschicken Netzwerkprogrammierung 3
J Simple HTTP Framework (basierend auf expressjs) Netzwerkprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben