Websocket wildfly не работает

Я пытаюсь использовать веб-сокет, используя openshift и wildfly 8.1.

Приложение работает на локальном сервере wildfly через порт 8080.

Но я не могу подключиться к серверу openshift для веб-сокета, используя порт 8000.

Любопытно, что если я использую переадресацию портов (rhc port-forward), я могу подключиться к локальному переадресованному порту.

Я думаю, что для переадресации портов на openshift есть недостаточная конфигурация.

Вот мой код:

import javax.websocket.EncodeException;
import javax.websocket.CloseReason;
import javax.websocket.EndpointConfig;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.OnError;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;

@ServerEndpoint("/ws/websocket")
public class WebSocketService{
    @OnOpen
    public void onOpen(Session peer, EndpointConfig config) {
        System.err.println("Open");
        peer.getAsyncRemote().sendText("Hello");
    }

    @OnClose
    public void onClose(Session peer, CloseReason reason) {
        System.err.println("Close");
    }

    @OnError
    public void onError(Session peer, Throwable throwable) {
        System.err.println("Error");
    }
}

person nono    schedule 03.09.2014    source источник


Ответы (1)


Порт WildFly на OpenShift должен быть 8080, а не 8000, как вы упомянули.

Можете ли вы подключиться к localhost: 8080 и перенаправить на свой экземпляр OpenShift?

Инструменты разработчика Chrome показывают какие-либо ошибки?

person Arun Gupta    schedule 04.09.2014
comment
С помощью инструмента chrome websocket я пробовал все порты, 8080 и 8000. Использование 8000 показывает статус подключения, но я ничего не получил. С переадресацией портов я могу подключаться и получать данные через порт 8080. Вы подтверждаете, что в OpenShift порт веб-сокета wildfly — 8080, а не 8000? - person nono; 05.09.2014
comment
Порт приложения WildFly на OpenShift — 8080. Можете ли вы печатать сообщения onOpen, onError, onClose? - person Arun Gupta; 06.09.2014
comment
Я создал пример приложения с приведенным выше кодом и безуспешно пытался подключиться, но в файле журнала ничего нет. URL-адрес веб-сокета: ws://wildfly8-houari.rhcloud.com:8080/wildfly8/ws/websocket. - person nono; 08.09.2014
comment
Я изменил onOpen, чтобы получать Hello при подключении. Поэтому, если вы сможете подключиться, вы получите это сообщение. У меня статус подключения, но ничего не происходит. - person nono; 08.09.2014
comment
Я подтверждаю, что это не работает на Openshift, но работает локально и с переадресацией портов. Я также подтверждаю, что порт Openshift для веб-сокета не 8080, а 8000. Я могу подключиться к порту 8000! Я могу получить сообщение Hello на этот порт. - person nono; 08.09.2014
comment
Подтверждение того, что порт WebSocket на OpenShift действительно 8000. Прочтите все об этом по адресу: openshift.com/blogs /паас-вебсокеты. Попробуйте простое приложение (github.com/javaee-samples/javaee7 -samples/tree/master/websocket/) и разверните на OpenShift и посмотрите, как это работает. Я попробовал умеренно сложное приложение (vaadin-milestogo.rhcloud.com:8000) и смог симулировать ~ 200 одновременных пользователей, подключенных с помощью WebSocket. - person Arun Gupta; 09.09.2014