Я пытаюсь подключиться к серверу XMPP, используя библиотеку StropheJS, но не могу найти правильный способ интегрировать его в мое приложение ReactionJS. Теперь мой код работает, экспортируя объект Strophe, добавив эту строку в файл пакета strophe.js в папке node_modules {{Х0}} но я не думаю, что это правильный путь. Может кто-нибудь подсказать мне, как это сделать. В моем файле js я импортирую строфу, добавив строку:
// This is JS
import React, { Component } from 'react';
import Strophe from "strophe";
class Login extends Component {
constructor(){
super();
this.state = {
connection: null
}
}
componentWillMount(){
this.setState({
connection : new Strophe.Connection("http://localhost:7070/http-bind/")
});
}
Я хочу выход без изменения исходного файла пакета strophe. Вот мой полный код, если вы хотите посмотреть: https : //github.com/cravi24/clientApp/blob/master/src/Components/Login.js
3 ответа
Наконец-то разобрался с проблемой моего кода. Strophe - это глобальный объект в библиотеке Strophe, и как только я импортирую эту библиотеку в свое приложение реагирования, она становится частью объекта window. Следовательно, мне нужно использовать это так:
new window.Strophe.Connection("http://localhost:7070/http-bind/")
Вместо
new Strophe.Connection("http://localhost:7070/http-bind/")
Ранее я ожидал, что объект strophe будет доступен в моем классе как локальный var, но, поскольку он не был экспортирован в библиотеку strophe, я не смог получить к нему доступ.
Основная задача Strophe - включить веб-приложения XMPP в реальном времени, которые запускаются в любом браузере. Клиентская библиотека, которая привязывается к объекту окна.
Используйте как ниже, чтобы использовать его в вашем React View.
import React, {Component} from 'react';
import Strophe from "strophe";
class Login extends Component {
constructor() {
super();
this.state = {
connection: null
}
}
componentWillMount() {
this.setState({
connection: new window.Strophe.Connection("http://localhost:7070/http-bind/")
});
}
Если вы хотите использовать его в Node Side. Используйте Node Strophe
и ниже приведен фрагмент кода.
// Configuration
var server = 'bosh.my-server.com';
var jid = 'user@my-server.com';
var password = '';
// Requirements
var strophe = require("node-strophe").Strophe;
var Strophe = strophe.Strophe;
// Set-up the connection
var BOSH_SERVICE = 'https://' + server + '/http-bind';
var connection = new Strophe.Connection(BOSH_SERVICE);
// Log XMPP
connection.rawInput = connection.rawOutput = console.log;
// Connect
connection.connect(jid, password);
Для другой ссылки, если вы импортируете библиотеку Strophe из пакета и используете new Strophe.Connection ("http: // localhost: 7070 / http-bind / ") этот синтаксис. Для этого вам нужно использовать import {Strophe} из "strophe.js"; . Вот как вы можете использовать новый Strophe.Connection без оконного объекта.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.