2016-08-17 3 views
3

Я использую strophe.js клиентскую библиотеку JavaScript для подключения к XMPP сервера (OpenFire), используя код ниже.онлайн и оффлайн пользователей, использующих strophe.js в режиме реального времени

var BOSH_SERVICE = 'http://127.0.0.1:7070/http-bind/'; 
connection = new Strophe.Connection(BOSH_SERVICE); 

    connection.connect("jid", 
        "password", 
        onConnect); 

и функции обратного вызова (OnConnect), как показано ниже:

function onConnect(status) 
{ 
    if (status == Strophe.Status.CONNECTING) { 
    log('Strophe is connecting.'); 
    } else if (status == Strophe.Status.CONNFAIL) { 
    log('Strophe failed to connect.'); 
    $('#connect').get(0).value = 'connect'; 
    } else if (status == Strophe.Status.DISCONNECTING) { 
    log('Strophe is disconnecting.'); 
    } else if (status == Strophe.Status.DISCONNECTED) { 
    log('Strophe is disconnected.'); 
    $('#connect').get(0).value = 'connect'; 
    } else if (status == Strophe.Status.CONNECTED) { 
    log('Strophe is connected.'); 
    log('ECHOBOT: Send a message to ' + connection.jid + 
     ' to talk to me.'); 

    connection.addHandler(onMessage, null, 'message', null, null, null); 
    connection.send($pres().tree()); 
    console.log($pres().tree()); 

    } 
} 

я успешно соединиться с сервером не используя этот код и никаких проблем до этого.

Задача: обновление списка пользователей со статусом в режиме реального времени.

Позвольте мне объяснить мою проблему:

Я хочу, чтобы показать список онлайн и оффлайн пользователей с обновлением в режиме реального времени (что-то похожее на показ чата приложения.)

отл.. Предположим, что есть 3 пользователя A, B и C., и все они находятся в режиме онлайн (зарегистрировано)

Теперь предположим, что пользователь A отключится или отключится, а затем как пользователь B, C получит уведомление со статусом пользователя A?. и изменить статус пользователя A в автономном режиме без обновления в списках пользователей B и C.

есть какой-либо метод в strophe.js, который будет автоматически вызываться, когда кто-то подключится или отключится. или мне нужно написать свои собственные?

Я не уверен, но есть что-то с реестром.

ответ

5

Вы можете подписаться на присутствие для ваших друзей с помощью этой строфе API:

connection.send($pres({ 
    to: jid,  // buddy jid 
    type: "subscribe" 
})); 

, который реализует спецификацию XMPP (см https://xmpp.org/rfcs/rfc3921.html#int для деталей). дружественного может принять подписку ответ с:

connection.send($pres({ 
    to: from, // jid of subscriber 
    type: "subscribed" 
})); 

Вы можете проверить мой пример веб-клиент, основанный на XMPP (с использованием Strophe.js) на Plunker:

http://plnkr.co/edit/EhQHDsYpDhrECmaaIlZO

+0

Спасибо за ваш ответ. я просто добавляю плагин подписки, чтобы открыть огонь и установить автоматический подписчик. и теперь его рабочий штраф ... ваш ответ также есть то, что я хочу знать. Спасибо дружище. –

+0

Можно ли создать видео-чат, используя strophe.js или любую другую библиотеку с openfire? –

+0

Я могу только предложить вам проверить функции WebRTC, которые позволяют веб-браузеру осуществлять аудио/видео связь в реальном времени между сверстниками – beaver

Смежные вопросы