2013-03-27 8 views
0

Я не могу ввести в onConnect функцию в nodeJS. Все дело в том, что я пытаюсь подключиться к flash, используя nodejs в качестве сервера.can not connect to flash in 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

Возможно, вам понадобится указать свой код на стороне клиента, чтобы увидеть проблему. –

ответ

1

Событие connection предназначено для класса net.Server (сервер) и connect для класса net.Socket (клиент). Когда вы создаете сервер через net.createServer, функция, которую вы передаете, автоматически устанавливается как слушатель для события connection. Из API doc -

net.createServer ([опции] [connectionListener])

Создает новый сервер TCP. Аргумент connectionListener автоматически устанавливается в качестве слушателя для события «connection».

На сервере нет 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'); 
});