Попытка создания теста эхо-сервера как с клиентом, так и с сервером в том же процессе узла. Этот код работает, если я разбил его на 2 файла (сервер и клиент), но он не работает, если он объединен в 1 файл. Как я могу заставить его работать внутри 1 файла?клиент и сервер в том же процессе nodejs
var HOST, createServer, g, net;
net = require("net");
HOST = "127.0.0.1";
createServer = function(port) {
net.createServer(function(sock) {
sock.write("welcome! on port " + port + "\r\n");
console.log("CONNECTED: " + sock.remoteAddress + ":" + sock.remotePort);
while (true) {
sock.write("hello\r\n");
}
}).listen(port, HOST);
console.log("server listening on " + port);
};
createServer(7001);
g = net.createConnection(7001, HOST);
g.on("data", function(data) {
console.log("got " + data);
});
и то же самое в CoffeeScript:
net = require "net"
HOST = "127.0.0.1"
createServer = (port) ->
net.createServer((sock) ->
sock.write("welcome! on port #{port}\r\n")
console.log("CONNECTED: #{sock.remoteAddress}:#{sock.remotePort}")
while true # this is the work queue, what ports to send to...
sock.write "hello\r\n"
return
).listen port, HOST
console.log "server listening on #{port}"
return
createServer(7001)
# XXX why does g.on "data" never fire?
# this works fine if I move it into
# it's own file, how to co-exist
# this client with server above
# in same file?
g = net.createConnection(7001, HOST)
g.on "data", (data) ->
console.log "got #{data}"
return
Спасибо, бардзусный! Я использовал SetInterval с задержкой «0», и теперь данные перекачиваются! – joe