首页 > 解决方案 > Tyrus Websockets:RSV 位设置不正确

问题描述

我正在尝试使用 tyrus 在 java 中设置 websocket 服务器,并通过在 Firefox 中打开的网站连接到它。我使用 localhost 作为 ip 地址。连接建立得很好,但是一旦我尝试通过服务器发送消息,立即断开连接,原因如下:

1002,RSV bit(s) incorrectly set.

我没有覆盖任何默认设置,只是设置服务器并连接到它。如果相关,我将发布一些代码:

爪哇服务器

Server server = new Server("localhost", 8000, "/", null, BridgeEndpoint.class);
server.start();

...

@ServerEndpoint(value="/producer")
public class BridgeEndpoint {

    ...

    @OnMessage
    public void onMessage(Session session, Message message) {
        System.out.println("message");
        message.setFrom(users.get(session.getId()));
        broadcast(message);
    }

    @OnClose
    public void onClose(Session session, CloseReason reason)  {
        chatEndpoints.remove(this);
        Message message = new Message();
        message.setFrom(users.get(session.getId()));
        message.setContent("Disconnected! " + reason);
        broadcast(message);
        System.out.println("Disconnected! " + reason);
    }

    ...

}

javascript客户端

let socket = new WebSocket("ws://localhost:8000/producer");
socket.send("Hello world!");

标签: javascriptjavawebsockettyrus

解决方案


推荐阅读