Возможно ли передать пользовательский объект от клиента к серверу, используя проект Tyrus для связи через websocket. Я хочу создать простое настольное приложение с помощью JavaFX. Как я могу передавать данные, которые я собираю на стороне клиента (например, Object Person с полями name и lastname), поэтому я могу сохранить эти данные в базе данных (на моей логике сервера)?Tyrus - передать объект от клиента к серверу
2
A
ответ
0
Возможно, и форма переданных данных является полностью вашим выбором.
WebSocket может передавать текстовые или двоичные данные, вот и все. Вы можете сериализовать свой obect до ObjectStream и отправить данные в виде двоичного потока, или вы можете использовать JAXB для данных маршалла и umarshall в/из XML или JSON-P для JSON (обратите внимание, что есть много других возможностей, таких как GSON, Jackson, ...).
Если бы я был на вашем месте, я бы использовал JSON с любой библиотекой, которую я нашел применимой - таким образом, когда вы расширите область приложения до javascript-клиентов, вы сможете повторно использовать (надеюсь) все ,
0
В дополнение к Павел Buček объяснения, примеры кода здесь
Base64 для преобразования
import java.util.Base64;
Serverendpoint
ArrayList listobj=new ArrayList();
listobj.add("data1");
listobj.add("data2");
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(listobj);
String str = Base64.getEncoder().encodeToString(byteArrayOutputStream.toByteArray());
session.getBasicRemote().sendText(str);
Client (Tyrus)
@OnMessage
public void onMessage(Session session, final String message) throws IOException {
try {
byte data[] = Base64.getDecoder().decode(message);
bis = new ByteArrayInputStream(data);
ois = new ObjectInputStream(bis);
ArrayList list= (ArrayList) ois.readObject();
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
} catch (Exception e) {
System.out.println("error : " + e.getMessage());
} finally {
if (bis != null) {
bis.close();
}
if (ois != null) {
ois.close();
}
}
}
Смежные вопросы
- 1. Node Express передать переменную от клиента к серверу
- 2. Доступ FormData объект отправлен от клиента к серверу (Express)
- 3. Как получить локальный IP-адрес от клиента веб-камеры Tyrus
- 4. Как передать объект запроса json от клиента к серверу для поиска коллекции Meteor
- 5. Дополнительные данные от клиента к серверу (json)
- 6. Отправка массива байтов от клиента к серверу?
- 7. WCF отправки ИНТ [] от клиента к серверу
- 8. Сообщение SignalR от клиента к серверу
- 9. Как подключиться от клиента Indy к серверу
- 10. Что такое '--- Переход от клиента к серверу?'?
- 11. Подключение от клиента android к серверу
- 12. Поднятие socket.error от клиента к серверу
- 13. Вызов метода от клиента к серверу (Метеор)
- 14. Отправка объекта сериализации от клиента к серверу
- 15. Подключение от клиента к серверу на парусах
- 16. получает входные данные от клиента к серверу
- 17. Получение ивритских писем от клиента к серверу
- 18. Отправить лямбда-выражения от клиента к серверу
- 19. Отправить строку последовательно от клиента к серверу
- 20. Подключить клиента к серверу?
- 21. Как получить доступ к файлу от клиента к серверу
- 22. Возьми принципал от клиента к серверу в WCF-службе
- 23. Java & EJB3: Как правильно передать объекты @Entity от клиента к серверу?
- 24. Подключение клиента к серверу, python
- 25. отправка параметров от клиента к серверу через RMI
- 26. MEAN Nodejs JSON.parse, передающий данные от клиента к серверу
- 27. Как пройти Facebook Id от клиента к серверу надежно
- 28. Недопустимый заголовок потока 434B0005 от клиента к серверу
- 29. Поток аудио от клиента к серверу для нескольких клиентов Java
- 30. Отправить несколько объектов сервера от клиента к серверу
Сейчас я понимаю. Есть ли какой-то простой учебник для этого, поэтому я вижу его в коде. Спасибо. – Sysrq147
@ Sysrq147 привет вы нашли образец кода? я также имею такое же требование – Jeevanantham
@ jerith2 К сожалению, нет. :/ – Sysrq147