javascript - 在 Adob​​e InDesign 中使用 peerjs

标签 javascript webrtc adobe-indesign peerjs

你好,

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

我正在使用 Adob​​e 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 - 在 Adob​​e InDesign 中使用 peerjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28064331/

相关文章:

javascript - 保存 InDesign 文档后仅运行一次事件监听器吗?

javascript - f[i].insertionPoints[0].rectangles.add({geometricBounds :

javascript - 在调整大小时延迟加载 YouTube

javascript - 在 Swift 中循环遍历 JavaScript 元素,WKWebView

javascript - 访问网络摄像头视频流的像素 (JS/WebRTC/MediaStreamTrack)

使用 WebRTC 的 Android 屏幕共享

javascript - 什么是避免对象命名空间冲突的 JavaScript 哈希表实现?

javascript - 如何通过正则表达式对以下字符串进行分组

javascript - 在 JavaScript 中使用正则表达式删除下划线

javascript - 在 Node Js 中,如何写入从视频上传的文件 block