连接打开后如何从javax websocket服务器获取消息

Posted

技术标签:

【中文标题】连接打开后如何从javax websocket服务器获取消息【英文标题】:How to get message from javax websocket server when connection has been opened 【发布时间】:2018-05-15 09:56:13 【问题描述】:

我已经编写了一个简单的 javax websocket 应用程序。我正在尝试通过会话将数据从 @OnOpen 方法发送到客户端,就像这样

@OnOpen
public void onOpen(Session session) throws IOException 

    session.getBasicRemote().sendText("Client connected");


然后我正在尝试接收它,但在客户端得到 undefined

        ws.onopen = function(event) 
            document.getElementById('messages').innerhtml = event.message;
        ;

        ws.onopen = function(event) 
            document.getElementById('messages').innerHTML = event.data;
        ;

我们能得到它吗?!

添加:@OnError 也是一样的

【问题讨论】:

也许您应该使用 onmessage 处理程序来获取消息。 是的,我知道,但问题是我们可以用这些方法来做吗?如果不能,我们可以用它们做什么 例如根据文档developer.mozilla.org/en-US/docs/Web/API/WebSocket onopen 事件表明连接已准备好发送/接收数据。这很有意义,例如,如果您要从客户端发送一些数据,因为连接建立是异步事件。 是的,但是我们如何在 javax 上下文中使用它来做一些实际的事情,我也了解了它在做什么,但是当我试图纠正代码中有用的东西时,结果却出乎意料 【参考方案1】:

基于JSR 356,如果您阅读 OnOpen 部分,则有会话、配置和路径参数等参数,但您没有从客户端收到任何消息。所以也许你可以使用路径参数来获取数据?

【讨论】:

以上是关于连接打开后如何从javax websocket服务器获取消息的主要内容,如果未能解决你的问题,请参考以下文章

Linux Bash:如何作为客户端打开 websocket 连接

Python Tornado Websocket连接在关闭后仍然打开

如何正确关闭 websocket

从 Meteor.js 打开一个 Websocket 连接

通过 Spring Websocket STOMP 打开连接会导致我们的服务器死机

在春天运行 javax.websocket 端点?