我正在使用Strophe.js开发一个聊天Web客户端(基于XMPP)。在服务器端,我有一个Openfire服务器。
我正在寻找使用Strophe.js的文件传输(xep-0096)的完整(和工作)示例。
我知道有一个名为 si-filetransfer 的插件,它应该有助于实现此功能,但缺少文档。所以要理解它是如何工作的并不容易。
在StackOverflow上,我发现只有一些不完整的帖子与此事有关,例如:Save received files from xmpp Strophe si-filetransfer
同样在网络上,我没有找到满足我需求的完整解决方案。
如果有另一个解决方案来实现上述目标(使用XMPP协议在JS客户端中进行文件传输),欢迎使用!
答案 0 :(得分:7)
以下是使用 jQuery 和 StropheJS 编写的非常简单的聊天演示,其中包含文件传输功能。文件传输的实现基于这两个Strophe.js插件:
https://github.com/strophe/strophejs-plugins/tree/master/si-filetransfer:它允许发送和接收流启动
https://github.com/strophe/strophejs-plugins/tree/master/ibb。它提供了一种传输机制(带内字节流)
此外,为了允许传输大于65535字节的文件,它还使用了分块算法。
以下是Plunker:http://plnkr.co/edit/fYpXo1mFRWPxrLlgr123
P.S。:您必须部署自己的XMPP服务器并根据您的配置调整以下代码行:
var server = 'mydomain.com';
var BOSH_SERVICE = 'http://127.0.0.1:7070/http-bind/';