2013-03-27 83 views
0

我無法在nodeJS中輸入onConnect函數。所有的事情是我試圖連接到使用nodejs作爲服務器的閃存。無法連接到nodejs中的閃存

我server.js是

var net = require('net'); 

var mySocket; 

var server = net.createServer(function(socket) { 
    mySocket = socket; 
    mySocket.on("connect", onConnect); 
    mySocket.on("data", onData); 
}); 

function onConnect() 
{ 
    console.log("Connected to Flash"); 
} 

function onData(d) 
{ 
    if(d == "exit\0") 
    { 
     console.log("exit"); 
     mySocket.end(); 
     server.close(); 
    } 
    else 
    { 
      console.log("From Flash = " + d); 
      mySocket.write(d, 'utf8'); 
    } 
} 

    server.listen(9001, "127.0.0.1"); 
    console.log("Connection Established"); 

可以在任何一個告訴我在哪裏出了錯?

+0

您可能還需要包含客戶端代碼以查看問題。 – 2013-03-27 13:43:23

回答

1

事件connection是用於類net.Server(服務器)和connect是用於類net.Socket(客戶端)。當您通過net.createServer創建服務器時,您傳遞的函數將自動設置爲connection事件的偵聽器。從API doc -

net.createServer([選項],[connectionListener])

創建一個新的TCP服務器。 connectionListener參數是 自動設置爲「連接」事件的偵聽器。

服務器沒有connect事件。要使用connect創建另一個創建另一個client.js並在運行server.js後執行它。

var net = require('net'); 
var port = 9001, 
    host = '127.0.0.1'; 
var socket = net.createConnection(port, host); 
console.log('Socket created.'); 
socket.on('data', function (data) { 
    console.log('RESPONSE: ' + data); 
}).on('connect', function() { 
    socket.write("GET/HTTP/1.0\r\n\r\n"); 
}).on('end', function() { 
    console.log('DONE'); 
});