Настоятельно рекомендую, все, что гуляет через интернет, заворачивать через http (в т.ч. websocket), само собой лучше с шифрованием (https), меньше будет гемороя, так как провайдеры (россия), а чаще мобильные, старательно тормозят или даже блокируют остальной трафик (например почти полностью убит p2p, даже webrtc испоьлзовать нужна магия).
Вернее сказать, тот трафик, которые DPI у провайдера не понимает, может быть сильно ограничен или даже сломан (лезут кривыми руками куда не следуют), поэтому не изобретайте паровоза.
На базе http берите либо готовые фреймворки и сериализаторы либо изобретайте свое. Популярные направления, использовать json, xml а если бинарный то Protobuf (вообще универсальная вещь). Для любого из указанных примеров в java есть библиотеки.