将peerjs与Adobe InDesign一起使用

Using peerjs with Adobe InDesign

本文关键字:一起 InDesign Adobe peerjs      更新时间:2023-09-26

>Hy,

我正在创建自己的 InDesign 插件,我需要连接到我创建的另一个 Web 应用程序。我尝试使用 socket.io,但我不想有另一台服务器,所以我已经传递给了 Peer JS,这样我有一个可以完美运行的点对点系统,但我遇到了一些意想不到的问题。

我正在使用使用CEP5的Adobe InDesign CC,它支持Google chrome BROWSER(CEF(Chromium扩展框架))。

在文档中,据说CEP5甚至支持WebRTC,但是当我尝试将peerjs(使用WebRTC)连接到另一个对等体时,我得到:"TypeError:undefined不是一个函数",在进一步调查中,我发现错误是由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协议的发布-订阅消息传递系统。我认为这是一个很好的解决方案,并且易于实施。这是我的服务器代码

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);
});
服务器

可以从客户端接收消息,客户端可以非常简单地将消息写入服务器。

希望这将在未来对某人有所帮助。