2014-10-28 4 views
1

Существует код строки:Socket.io ошибка отправки сообщения в гнездо

io.sockets.socket(socketid).emit('counter', { all : data.all, dialog : data.dialog }); 

Это дает мне исключение:

TypeError: Object #<Namespace> has no method 'socket' 

Мой соединение событие:

io.sockets.on('connection', function(socket) {}); 

Почему объект розетка нет?

Полный код:

var socketio = require('socket.io'); 
var server = http.createServer(app).listen(8181, function(){ 
    console.log("Express server listening on port "+ app.get('port') +" in "+ app.get('env') +" mode."); 
}); 

var io = socketio.listen(server); 
io.on('connection', function(socket) {}); 

ответ

3

создание сервера Оправа для использования с курьерским. Посмотрите на http://socket.io/docs/ для получения дополнительной информации.

var app = require('express').createServer(); 
var io = require('socket.io')(app); 

app.listen(8181); 

io.on('connect', function(socket) { 
    socket.on('example', function(data) { 
     //parse the data, do something, create response data object, etc. 

    }); 
}); 

И с HTTP + Экспресс

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

server.listen(8181); 

io.on('connect', function(socket) { 
     socket.on('example', function(data) { 
      //parse the data, do something, create response data object, etc. 

     }); 
    }); 

Для испускают вы пытаетесь создать (мой пример ниже будет транслироваться только на подключенный сокет, предоставляя .TO (socket.id))

io.to(socket.id).emit('counter', {all : data.all, dialog : data.dialog}); 
+0

Я пробовал ваш пример witout 'io.sockets' - ошибка такая же – AllenDegrud

+0

У вас есть io, вытащил ваш сервер? 'var io = require ('socket.io');' Это будет в вашем файле server.js. – Devnetics

+0

Да, в верхнем скрипте есть: 'socketio = require ('socket.io');' var io = socketio.listen (server); ' – AllenDegrud

Смежные вопросы