Итак, я пытаюсь перенести свой проект с разработки на производство, размещенный с модулем.io.Socket.io Fails On Every Emit
Проблема в том, что каждый раз, когда я пытаюсь испустить или получить данные между сервером < -> клиентское соединение, приложение выходит из строя на сервере.
Это ошибка, я получаю:
/mnt/data/2/node_modules/socket.io/lib/parser.js:75
data = JSON.stringify(ev);
^
TypeError: Converting circular structure to JSON
at Object.stringify (native)
at Object.exports.encodePacket (/mnt/data/2/node_modules/socket.io/lib/parser.js:75:19)
at Socket.packet (/mnt/data/2/node_modules/socket.io/lib/socket.js:212:21)
at Socket.emit (/mnt/data/2/node_modules/socket.io/lib/socket.js:368:15)
at null.<anonymous> (/mnt/data/2/server/*******/*******.coffee:36:52)
at wrapper [as _onTimeout] (timers.js:252:14)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
Вот где я с отладкой:
Это линия, где ошибка, хотя иногда в других местах, в зависимости от того, кто пытается испускают событие: первый
Vent.socket?.emit('event', @)
Socket.io работает, как ожидалось на
localhost
Socket.io успешно подключается к клиенту перед отказом (от хромированная Дев инструментов):
XHR finished loading: "http://********.onmodulus.net/socket.io/1/?t=1372727710817". socket.io.js:1659
XHR finished loading: "http://********.onmodulus.net/socket.io/1/xhr-polling/sKNz7RX5j2fo-Rku8bDb?t=1372727711281".
Socket.io будет подключаться к серверу и работать до тех пор, пока не будет tr у либо испускать или реагировать на событие
Кроме того, если это помогает здесь мое Событию агрегатора класс:
module.exports = class Events extends events.EventEmitter
constructor: (io) ->
self = @
@io = io
@socket = null
@io.configure(
() =>
console.log 'configuring socket.io...'.yellow
@io.set("transports", ["xhr-polling"])
@io.set("polling duration", 10)
)
@io.sockets.on('connection',
(socket) =>
@socket = socket
console.log 'socket connected'
socket.on('client', (event, arg) ->
if arg?
self.emit(event, arg)
else
self.emit(event)
)
)
Любовь, чтобы попытаться отследить это. Вам нужно увидеть еще какой-нибудь код, прежде чем иметь хорошую идею. –
Ах, я уже нашел ошибку. Я ценю предложение, хотя! –