Атмосфера долгого опроса с причалом

Я использовал атмосферу с пристанью 9 и майкой.

Код моего сервера.

@Path ("/ {channelName}") @Singleton открытый класс ResourceChat {

@PathParam("channelName")
Broadcaster groupBroadcaster;

@Suspend
@GET
@Produces(MediaType.TEXT_PLAIN)
public Broadcastable suspend(@Context AtmosphereResource res, @Context BroadcasterFactory factory) {
    Broadcaster privateBroadcaster = factory.lookup(res.session(), true);
    privateBroadcaster.addAtmosphereResource(res);
    return new Broadcastable(privateBroadcaster.getID(), groupBroadcaster);
}

@Broadcast(writeEntity = false)
@POST
@Produces(MediaType.TEXT_PLAIN)
public Broadcastable onMessage(String message) {
    return new Broadcastable(message, groupBroadcaster);
}

}

Код моего клиента.

        var socket = atmosphere;
        var subSocket;
        var transport = 'long-polling';

        // We are now ready to cut the request
        var request = { url:  'http://localhost:8080/stream/2',
            contentType : "text/plain",
            logLevel : 'debug',
            transport : transport ,
            trackMessageLength : false,
            reconnectInterval : 5000,
            enableXDR: false,
            timeout : 60000,
            shared: false
        };

            request.headers = {"custom-name": "custom-value"
            };

        request.onOpen = function(response) {
            console.log('Atmosphere connected using ' + response.transport)
            transport = response.transport;
            request.uuid = response.request.uuid;
        };


        request.onMessage = function(response){
            console.log("1")
            console.log(response.responseBody);
        };

        request.onMessagePublished = function(response){
            console.log("1")
            console.log(response);
        };

        request.onClose = function(response) {
            if (subSocket) {
                subSocket.push("Hello");
            }
        };

        request.onError = function(response){
            console.log("1")
            console.log(response);
        };

        subSocket = socket.subscribe(request);

Если я использую длинный опрос на печать сообщения

org.eclipse.jetty.server.session.HashedSession:1m5nh1kgu8vci1lcp3gmfznozb@1801136977

Иначе, если бы я использовал websocket или JSON, все работает нормально. Атмосфера версия 2.1.4

0 ответов

Другие вопросы по тегам