Jetty websocket和HTML5的问题

时间:2015-01-10 12:30:31

标签: java javascript websocket jetty

我使用Javascript客户端在Java中创建了一个简单的聊天服务器,但是我在接收从JavaScript到Java的消息时遇到了问题。

当我使用Java客户端时,它工作正常,但是当我使用Javascript时,我遇到了问题。

我的代码:

爪哇

public class ChatRunner {

    public static void main(String[] args) throws Exception {
        Server server = new Server();
        ServerConnector connector = new ServerConnector(server);
        connector.setPort(8080);
        server.addConnector(connector);
        ServletContextHandler context = new ServletContextHandler(
                ServletContextHandler.SESSIONS);
        context.setContextPath("/");
        server.setHandler(context);
        try {
            ServerContainer wscontainer = WebSocketServerContainerInitializer
                    .configureContext(context);
            wscontainer.addEndpoint(ChatEndpoint.class);
        server.start();
        server.dump(System.err);
        server.join();
        } catch (Throwable t) {
            t.printStackTrace(System.err);
        }
    }
}

@ServerEndpoint(value="/events/")
public class ChatEndpoint {

    @OnOpen
    public void onWebSocketConnect(Session sess) {
        System.out.println("Socket Connected: " + sess);
    }

    @OnMessage
    public void onWebSocketText(String message) {
        System.out.println("Received TEXT message: " + message);
    }

    @OnClose
    public void onWebSocketClose(CloseReason reason) {
        System.out.println("Socket Closed: " + reason);
    }

    @OnError
    public void onWebSocketError(Throwable cause) {
        cause.printStackTrace(System.err);
    }
} 

JavaScript的:

var ws = new WebSocket("ws://localhost:8080/events/"); 
ws.onopen = function() {  ws.send("Hello");  };

1 个答案:

答案 0 :(得分:0)

您可以使用https://www.websocket.org/echo.html测试您的服务器。只需输入您的全局网址并进行测试即可。