Знаете ли вы какие-либо недекларированные клиентские библиотеки Javascript XMPP? - PullRequest
0 голосов
/ 22 октября 2019

Знаете ли вы о каких-либо устаревших клиентских библиотеках XMPP javascript? Библиотеки, которые я пробовал:

  1. node-xmpp-client

2. @ xmpp / client

У меня проблемы с использованием @XMPP / клиент. Пожалуйста, ознакомьтесь с кодом ниже и ошибкой.

Результат: Распечатайте "Я онлайн", когда пользователь вошел в систему.

Пожалуйста, включите любые учебные ресурсы, если вы знаете о

КОД:

 var app = require('express')();
 //const xmpp = require('xmpp-ftw');
 //const BuddyCloud = require('xmpp-ftw-buddycloud');

 var server = require('http').createServer(app);

 var io = require('socket.io').listen(server);

 server.listen(process.env.PORT || 3000);

 app.get('/', function(req, res){
 res.sendFile(__dirname + '/index.html');
 });


 const {client, xml} = require('@xmpp/client')

const xmpp = client({
     service: 'ws://domain.com:5280/xmpp-websocket',
     domain:'domain.com',
     username: 'test',
     password:'pa$$word'
 });

 xmpp.on('online', ()=>{
 console.log('I am Online');
 });

 xmpp.on('stanza', async stanza => {
    if (stanza.is('message')) {
      await xmpp.send(xml('presence', {type: 'unavailable'}))
      await xmpp.stop()
    }
  });


 xmpp.start();

ОШИБКА:

Error: Unexpected server response: 404
    at ClientRequest.req.on (/Users/my-name/xmmp-begin-2/node_modules/ws/lib/websocket.js:579:7)
    at ClientRequest.emit (events.js:198:13)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:556:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:109:17)
    at Socket.socketOnData (_http_client.js:442:20)
    at Socket.emit (events.js:198:13)
    at addChunk (_stream_readable.js:288:12)
    at readableAddChunk (_stream_readable.js:269:11)
    at Socket.Readable.push (_stream_readable.js:224:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:94:17)
Emitted 'error' event at:
    at Socket.listeners.error.error (/Users/my-name/xmmp-begin- 
    2/node_modules/@xmpp/connection/index.js:98:12)
    at Socket.emit (events.js:203:15)
    at WebSocket.listeners.error.event (/Users/my-name/xmmp-begin- 
    2/node_modules/@xmpp/websocket/lib/Socket.js:40:12)
    at WebSocket.onError (/Users/my-name/xmmp-begin-2/node_modules/ws/lib/event-target.js:128:16)
    at WebSocket.emit (events.js:198:13)
    at abortHandshake (/Users/my-name/xmmp-begin-2/node_modules/ws/lib/websocket.js:697:15)
    at ClientRequest.req.on (/Users/my-name/xmmp-begin-2/node_modules/ws/lib/websocket.js:579:7)
    [... lines matching original stack trace ...]
    at HTTPParser.parserOnHeadersComplete (_http_common.js:109:17)

my-name-MacBook-Pro:xmmp-begin-2 my-name$ 

РАСПОЛОЖЕНИЕ БЛОКА НА ПРОЗОДЕ:

server {
    listen  80;
    listen [::]:80;
    server_name my-domain.net;

    location /xmpp-websocket/
    {
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass "http://localhost:5280/xmpp-websocket";

            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_read_timeout  900s;
    }



    location / {
            proxy_pass "http://localhost:8000/";

    }

    error_page 404 /404.html;
            location = /40x.html {

    }

    error_page 500 502 503 504 /50x.html;
            location = /50x.html{

    }

}

1 Ответ

0 голосов
/ 14 ноября 2019

node-xmpp-client работает хорошо

мой конфиг для nginx

stream {
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

upstream websocket {
    server localhost:5280;
}

server {
    listen 80;
    location / {
        proxy_pass http://websocket;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}
}

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

...