2017-01-05 37 views
0

我是新來socket.io所以我下面這個教程的步驟heresocket.io發出內部socket.on不起作用

我試圖從客戶端發送一個值服務器,然後進行一些計算並將新值發送到客戶端的另一個視圖。這是到目前爲止我的代碼:

server.js

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

io.on('connection', function(socket){ 

    socket.on('fromClient', function(data){ 
    console.log(data); 
    //calculations will be here, not relevant 
    socket.emit('fromServer', data); 
    }); 

// socket.send(req.query.gid); 

    socket.on('disconnect', function() { 
    }); 

}); 

client.js(應該接收 'fromServer' 發射部分,這是一個角控制器)

var socket = io(); 
    socket.on('fromServer', function(data){ 
     console.log(data); 
    }); 

我知道'fromClient'端正在工作,因爲它確實打印了數據的值,但它不打印'fromServer'值。我不確定這裏的問題是socket.on中的socket.emit從來沒有被調用(服務器),或者socket.on('fromServer')不工作(客戶端)。

爲了記錄,我做了另一個測試,它確實工作,但它只是與快遞。另一方面,我試圖在我的項目中使用socket.send和socket.eon以外的socket.send和socket.eon,並且它工作,所以我不確定它是否與angular有關,它是io.on( '連接')事件,或者它只是嵌套。

回答

1

貌似沒有人要回答我的任何問題...

這是socket.emit,看起來並沒有將其發送給其他人,但同一客戶,這就是爲什麼我能在測試中看到它(有一個視圖),但不是在我的真實項目中。

答案是io.sockets.emit(...)