gpt4 book ai didi

javascript - 无法从运行脚本的浏览器端连接到 Openfire 服务器

转载 作者:行者123 更新时间:2023-12-05 07:37:15 24 4
gpt4 key购买 nike

起初,我使用以下脚本连接到 Openfire。

const {Client} = require('@xmpp/client')
const client = new Client()
client.start('xmpp://localhost:5222').catch(err => {
console.error('start failed', err)
})
client.handle('authenticate', authenticate => {
return authenticate('gabbar', 'gabbar@123')
})

但它向我显示错误“未定义要求”。所以我搜索了互联网,发现 browserify 可以完成我的工作。所以我使用 HTML 页面的 index.js 创建了 bundle.js 文件,并将其包含在 HTML 页面中。

<head>
<meta charset="UTF-8"/>
<title>xmpp.js example</title>
<script src="bundle.js"></script>
<!-- <script src="index.js"></script>-->
</head>

但是我得到了错误

no compatible connection method found

有没有人能说出其他方法。我也试过与 xmpp.js client 的示例目录中给出的相同包,但这给我错误,如 XMPP 不是函数。以下是我在查看示例文件后编写的代码。

index.js

const {xmpp, xml} =
typeof require === 'undefined' ? window.xmpp : require('@xmpp/client') // For you; require('@xmpp/client')
const {client} = xmpp()
client.start('xmpp://localhost:5222').catch(err => {
console.error('start failed', err)
})
client.handle('authenticate', authenticate => {
return authenticate('gabbar', 'gabbar@123')
})

sample.html

<head>
<meta charset="UTF-8"/>
<title>xmpp.js example</title>
<script src="node_modules/xmpp.js/dist/xmpp.min.js"></script>
<script src="index.js"></script>
</head>

这些是我尝试从浏览器端连接到 openfire 的两种方式,但它们都不适合我。拜托,任何人都可以告诉我我做错了什么或任何其他可能更好的方法吗?

最佳答案

浏览器不支持

xmpp://。浏览器仅支持 ws:// (websockets)。如果服务器支持 websockets,你可以这样做:

client.start('ws://domain:port)client.start('ws://domain:port/xmpp-websockets)

另一种选择是不在浏览器中使用 Node。这可以通过在没有浏览器的情况下自行运行 Node 或在 Electron 的后台进程中运行该代码来实现(与单独运行 Node 相同,但您可以与渲染器进程通信以与 UI 交互)

关于javascript - 无法从运行脚本的浏览器端连接到 Openfire 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48740844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com