DDP, Node и Chrome Browserify

Я использую ddp и browserify в расширении Chrome для взаимодействия через клиент ddp с приложением Meteor.

Однако, когда я создаю соединение, я сталкиваюсь с ошибкой:

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

Это происходит при создании new Websocket(uri='ws://localhost:3000/websocket', protocols={})

Я вижу аналогичную ошибку в Как получить доступ к приложению, размещенному на meteor.com, по протоколу DDP (WebSocket)?, но решение, которое они должны были изменить на порт 443, не сработало.

У кого-нибудь есть обходной путь?


person user592419    schedule 27.11.2013    source источник
comment
Опустите второй параметр или измените его на []   -  person rsanchez    schedule 28.11.2013
comment
Когда я это делаю, я получаю TypeError: Object #<WebSocket> has no method 'on' при попытке открыть сокет с помощью self.socket.on('open', func...)   -  person user592419    schedule 28.11.2013
comment
О, я вижу. Он имеет методы onopen, onclose и т.д.   -  person user592419    schedule 28.11.2013


Ответы (1)


Параметр протоколов является необязательным и должен быть либо строкой, либо массивом протоколов, как описано здесь (в вашем коде вы предоставляете объект)

Как только это будет решено, очевидно, вам нужно будет подключить все другие обязательные обратные вызовы, как правило:

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

И обратный вызов для обработки сообщений сервера

exampleSocket.onmessage = function (event) {
  console.log(event.data);
}
person Flavien Volken    schedule 20.12.2013