0
こんにちは私はnodeJSで新しく、新しいリクエストが到着したときにメッセージをブロードキャストしようとしています。リクエストが到着している間にnodeJSを呼び出す
私はAjaxの呼び出しをしようとし、すべてのブラウザにTTYPE変数とブロードキャスト送信が、私は働いていない
socket.emit('date', {'date': ttype});
到着要求したときに私の問題はあるのです。しかし、私はnodeJsコンソールでそれをチェックすると、show tyypeであり、それは価値があります。ここに私のコードがあります
var http = require('http');
var url = require('url');
var fs = require('fs');
var server;
var ttype = "";
server = http.createServer(function(req, res){
// your normal server code
var path = url.parse(req.url).pathname;
var queryObject = url.parse(req.url,true).query;
ttype = queryObject.type;
switch (path){
case '/':
fs.readFile(__dirname + path + "test.html", function(err, data){
if (err){
console.log('error');
//return send404(res);
}
res.writeHead(200, {'Content-Type': path == 'json.js' ? 'text/javascript' : 'text/html'});
res.write(data, 'utf8');
res.end();
sendMessage(ttype);
});
break;
case '/test.html':
fs.readFile(__dirname + path, function(err, data){
if (err){
return send404(res);
}
res.writeHead(200, {'Content-Type': path == 'json.js' ? 'text/javascript' : 'text/html'});
res.write(data, 'utf8');
res.end();
});
break;
default: send404(res);
}
}),
send404 = function(res){
res.writeHead(404);
res.write('404');
res.end();
};
server.listen(8076);
sendMessage = function(ttype){
var iio = require('socket.io').listen(server);
iio.sockets.on('connection', function(socket){
socket.emit('date', {'date': ttype});
console.log('in side connection');
});
}
// use socket.io
var io = require('socket.io').listen(server);
// define interactions with client
io.sockets.on('connection', function(socket,data){
socket.emit('date', {'date': ttype});
setInterval(function(){
//socket.emit('date', {'date': new Date()});
}, 5000);
//recieve client data
socket.on('client_data', function(data){
process.stdout.write(data.letter);
});
});
は、なぜあなたは同じポート上の2台の別々のsocket.ioサーバを起動している:あなたがしなければならないだろうすべてはにあなたのsendMessage関数を変更するのですか?それはうまくいかないでしょう。 – jfriend00
@ jfriend00ここに私のビューのsocket.ioコードです。