Object Tyrus-将对象从客户端传递到服务器

Object Tyrus-将对象从客户端传递到服务器,object,websocket,javafx,tyrus,Object,Websocket,Javafx,Tyrus,是否可以使用Tyrus项目进行websocket通信,将自定义对象从客户端传递到服务器。我想使用JavaFX构建简单的桌面应用程序。我如何在客户端传递我“收集”的数据(例如,带有姓名和姓氏字段的对象人员),以便将该数据保存到数据库(在我的服务器逻辑上)?这是可能的,传输数据的形式完全由您选择 WebSocket可以传输文本或二进制数据,就是这样。您可以将obect序列化为二进制流,并将数据作为二进制流发送,也可以使用marshall和umarshall将数据与XML或JSON进行数据交换(请注意

是否可以使用Tyrus项目进行websocket通信,将自定义对象从客户端传递到服务器。我想使用JavaFX构建简单的桌面应用程序。我如何在客户端传递我“收集”的数据(例如,带有姓名和姓氏字段的对象人员),以便将该数据保存到数据库(在我的服务器逻辑上)?

这是可能的,传输数据的形式完全由您选择

WebSocket可以传输文本或二进制数据,就是这样。您可以将obect序列化为二进制流,并将数据作为二进制流发送,也可以使用marshall和umarshall将数据与XML或JSON进行数据交换(请注意,还有很多其他可能性,如GSON、Jackson等)


如果我处在您的位置,我会将JSON与我认为可用的任何库一起使用——这样,当您将应用程序范围扩展到javascript客户端时,您将能够(希望)重用所有内容。

除了Pavel Bucek说明之外,这里还有示例代码

用于转换的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);
客户(Tyrus)

@OnMessage
public void onMessage(会话,最终字符串消息)引发IOException{
试一试{
字节数据[]=Base64.getDecoder().decode(消息);
bis=新的ByteArrayInputStream(数据);
ois=新的ObjectInputStream(bis);
ArrayList=(ArrayList)ois.readObject();
对于(int i=0;i
我现在看懂了。有一些简单的教程,所以我可以在代码中看到它。谢谢。@Sysrq147您好,您找到任何代码示例了吗?我也有同样的经历requirement@jerith2不幸的是,没有。:/@jerith2我对Java编程相当陌生。我很想帮忙,但不是很忙。抱歉:(@Sysrq147)我找到了解决方案并发布在下面
@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();
        }
    }
}