【问题标题】:DDP, Node, and Chrome BrowserifyDDP、Node 和 Chrome Browserify
【发布时间】:2013-11-27 22:17:22
【问题描述】:

我正在使用 chrome 扩展中的 ddpbrowserify 包通过 ddp 客户端与 Meteor 应用程序通信。

但是,当我实例化连接时,我遇到了错误:

Uncaught SyntaxError: Failed to execute 'connect' on 'WebSocket': The subprotocol '[object Object]' is invalid.

创建new Websocket(uri='ws://localhost:3000/websocket', protocols={})时会发生这种情况

我在How to access app hosted on meteor.com by DDP (WebSocket) protocol? 看到了类似的错误,但他们不得不将端口更改为 443 的解决方案不起作用。

有人有解决方法吗?

【问题讨论】:

  • 省略第二个参数,或者改成[]
  • 当我这样做时,我在尝试使用 self.socket.on('open', func...) 打开套接字时得到一个TypeError: Object #<WebSocket> has no method 'on'
  • 哦,我明白了。它有onopen、onclose等方法。

标签: node.js google-chrome-extension meteor browserify ddp


【解决方案1】:

protocols 参数是可选的,必须是字符串或协议数组,如described here(在您的代码中,您提供了一个对象)

一旦解决了这个问题,显然您需要附加所有其他强制回调,通常是:

exampleSocket.onopen = function (event) {
  exampleSocket.send("Here's some text that the server is urgently awaiting!"); 
};

以及处理服务器消息的回调

exampleSocket.onmessage = function (event) {
  console.log(event.data);
}

【讨论】:

    猜你喜欢
    • 2017-06-15
    • 1970-01-01
    • 2015-07-24
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多