Как создать websocket в GWT

#java #gwt #java-websocket

#java #gwt #java-websocket

Вопрос:

Мне нужна помощь в понимании того, как создать websocket в GWT. По сути, мне нужно изучить возможность создания системы для push-уведомлений, я попытался изучить для этого атмосферу, но в настоящее время у меня есть настройка рабочей области, не использующая maven, и все учебные пособия имеют в виду maven. Я попытался загрузить и вручную импортировать необходимые банки, но все еще возникли проблемы.

Мне было интересно, есть ли учебные пособия по созданию websocket на стороне сервера и прослушиванию его клиентом. В настоящее время я использую GWT 2.8 для настройки своей среды.

Любая помощь или учебные пособия будут с благодарностью приняты.

Комментарии:

1. У Elemental есть хороший API для создания веб-сокетов. В этом примере не используются Websockets, но показано, как подключить elemental FileReader api. gist.github.com/branflake2267/180b69b9a29987214643f62fb279151f и джавадок docs.sencha.com/gxt/4.x/javadoc/gwt-2.8.0/gwt-elemental-2.8.0 /…

Ответ №1:

Может быть, вы можете написать клиентский ws с JSNI следующим образом:

 public class SomeClassSingleton{

    private static SomeClassSingleton instance;
    public static SomeClassSingleton  getInstance(){
        .
        .
        .
        return instance;
    }

    private native void connectionWS()/*-{  

    // connection variable
    var connection = new WebSocket('ws://www.endpointwebsocket.com:8888/ws/ws');
    // run connection function
    connect();
        function connect() {
            // open connection
            connection.onopen;

            connection.onerror = function (error) {
                .   
                .
                .
            };

            connection.onmessage = function (e) {
                .
                .
                .
            };

            connection.onopen = function (e) {
                var pa1=@com.something.client.communication.ClientWS::Rol;                  
                var pa2=@com.something.client.communication.ClientWS::channel;
                var pa3=@com.something.client.communication.ClientWS::allowRead;
                var pa4=@com.something.client.communication.ClientWS::allorMod;
                var jsonp= JSON.stringify({ "pC":["false",pa1,pa2,pa3,pa4]});
                connection.send(jsonp);
            }

            connection.onclose = function (e) {
                .
                .
                .
            }
        }
}-*/;
}
  

Или, если вам нужна только система gwt push, см. gwteventservice:
https://mvnrepository.com/artifact/de.novanic.gwteventservice/gwteventservice

С уважением