你好,
我正在创建自己的 InDesign 插件,我需要连接到我创建的另一个 Web 应用程序。我尝试使用 socket.io,但我不想有另一个服务器,所以我已经传递给 Peer JS,这样我就有了一个可以完美运行的对等系统,但我遇到了一些意想不到的问题。
我正在使用 Adobe InDesign CC,它使用 CEP5,它支持 google chrome BROWSER (CEF (Chromium extended framework))。
在文档中据说 CEP5 甚至支持 WebRTC,但是当我尝试将 peerjs(使用 WebRTC)连接到另一个对等点时,我得到一个:“TypeError: undefined is not a function”,在进一步调查中我发现该错误是由 Object.Negotiator._startPeerConnection 抛出的,但我不明白我错了什么......
我尝试在另一个应用程序(只是一个普通网站)中使用相同的 PEER JS 代码并连接到同一个对等点并成功,所以我猜测问题出在 InDesign 提供的 WebRTC 支持上。
我并不局限于使用 PEER JS,我只是希望我的 adobe 插件和我的网站以尽可能最智能的方式进行通信,所以欢迎任何想法,但这是我尝试的插件代码片段连接到 PEERJS
var peer = new Peer({key: mySecretKey});
var conn = peer.connect('editor-vaComeVibraEEE');//the exception is generated here
conn.on('open', function(){
conn.send('hi!');
});
谢谢你的帮助...... . .
最佳答案
嗯, 我找到的唯一解决方案是放弃 peerJS 并迁移到 faye ,这是一个基于 Bayeux 协议(protocol)的发布-订阅消息系统。我认为这是一个很好的解决方案,而且易于实现。这是我的服务器代码
var http = require('http'),
faye = require('faye');
var server = http.createServer();
bayeux = new faye.NodeAdapter({mount: '/'});
bayeux.attach(server);
server.listen(8000);
bayeux.getClient().publish('/inDesign', {
text: val
});
在客户端,我收到这样的消息:
var client = new Faye.Client('http://localhost:8000/');
client.subscribe('/inDesign', function(message) {
alert('Got a message: ' + message.text);
});
服务器可以接收来自客户端的消息,并且客户端可以以非常简单的方式将消息写入服务器。
希望这对将来的人有所帮助。
关于javascript - 在 Adobe InDesign 中使用 peerjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28064331/