2014-10-06 3 views
0

Я работаю над приложением iOS с разъемом socket.io/koa (https://github.com/koajs/koa). Для тестирования службы я использую thor (https://github.com/observing/thor). Проблема в том, что моя служба socket.io ничего не вернет. Когда я смотрю на ответ thors, я вижу, что есть соединение, но нет обратного вызова от службы. Это мой код для создания и тестирования сервиса Socket.io:Socket.io с koa

var server = require('http').Server(app.callback()), 
    io = require('socket.io')(server); 

io.on('connection', function(socket) { 
    socket.emit('news', { hello: 'world' }); 
    console.log('it works.'); 
}); 

На мой взгляд, должен быть лог на консоли и написано «{привет:„мир“}» в связи с моей клиент. Есть ли проблема с koa, или я делаю что-то неправильно?

+1

какая версия 'socket.io'? как выглядит ваш клиентский код? Я всегда мог узнать, правильно ли связан сокет .io с моим экземпляром сервера, используя библиотеку io на стороне клиента и пытается подключиться. Это или вы можете посмотреть журнал подключения к серверу, клиентская библиотека socket.io пытается подключиться к тому, что вы предоставляете в качестве параметра «путь:» при создании клиентского сокета. Вы видите какие-либо попытки подключения в '/ socketio' или тому подобное? – jbielick

ответ

0

Если вы не видите «это работает» на терминале, на котором вы запускаете приложение, не было сокета или веб-сокета, подключенного к вашему серверному приложению.

Я бы не стал тестировать Коа, используя Thor, прежде чем ваше приложение не будет работать. Коа неустойчив.

Глядя на ваш код, который я предполагаю, что вы хотите сделать что-то вроде:

app.io.route('news', function* (next, data){ 
    console.log("Server terminal output for client emited event news: ",data); 
    this.emit('ok',{news: 'received'}); 
    this.broadcast.emit('news',data); 
}); 

Обратите внимание на звездочку после функции. В этом и заключается основное отличие вместо использования Express.

Событие соединения используется на клиентском сайте:

socket.on('connect', function() { 
    socket.emit('news',{hello: 'world'}); 
    socket.on('ok',function(data){ 
    console.log('this message is written on browser console',data); 
    }); 
}) 

На сайте клиента нет Звездочки.