首页 > 解决方案 > 在弹性 beantalk 中连接 Web 套接字时出错

问题描述

我使用java创建网络套接字

package websocket;

import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import javax.websocket.OnClose;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;

@ServerEndpoint("/ServerEndpoint")
public class ServerEndpoint{
    private static final Set<Session> SESSIONS = ConcurrentHashMap.newKeySet();

    @OnOpen
    public void onOpen(Session session) {
        SESSIONS.add(session);
        System.out.println(session+" :connected"); 
    }

    @OnClose
    public void onClose(Session session) {
        SESSIONS.remove(session);
        System.out.println(session+" :closed");
    }

    public static void sendAll(String text) {
        synchronized (SESSIONS) {
            for (Session session : SESSIONS) {
                if (session.isOpen()) {
                    session.getAsyncRemote().sendText(text);
                }
            }
        }
    }
}

如果我使用此链接,我可以使用 javascript 连接网络套接字

“ws://localhost:8080/test/ServerEndpoint”

在我将项目部署到弹性 beanstalk 之后,如果我使用它,
将无法连接 web socket

“ws://samplepath.ap-northeast-1.elasticbeanstalk.com/ServerEndpoint”

这是错误信息

Error during WebSocket handshake: Unexpected response code: 404

我应该怎么办?

标签: javascriptjavaamazon-web-serviceswebsocket

解决方案


推荐阅读