私は、ファイルが更新されるたびにファイルからクライアントにデータを送信するための簡単なスクリプトを作成しようとしています。私はテストして、ファイルが読み込まれているが、クライアントは何も受け取らないことがわかりました。コンソールにエラーはありません。私はsocket.ioにかなり新しいです。socket.ioがクライアントに送信しない
Node.jsのコード
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var fs = require("fs");
var port = process.env.PORT || 3000;
app.get('/', function(req, res){
res.sendFile(__dirname + '/popup.html');
});
fs.watchFile("assets/popup.json", {interval:100}, function(curr, prev)
{
fs.readFile("assets/popup.json",{encoding:"utf8"}, function(err, data){
io.emit("popup", data)
})
});
http.listen(port, function(){
console.log('listening on *:' + port);
});
クライアントコード
var socket = io();
socket.on('popup', function(msg){
alert("hello")
});
あなたは 'io.emit()'に近づいていますか?そこに 'console.log()'ステートメントを置くと、そのステートメントがコンソールに表示されますか? – jfriend00
はい、私はconsole.log(data)を持っていて、データを出力して、ページ上に何も受け取らなかった –
その後、socket.ioサーバーを初期化するすべての関連コードを表示してください。また、 'io.on( 'connect'、...)'をコールバックに 'console.log()'を入れて、クライアントが接続していると思っているかどうかを確認することができます。また、クライアントに接続エラーのさまざまなリスナーを登録して、それらのいずれかがヒットしているかどうかを確認することができます。イベント駆動型プログラミングに疑問がある場合は、すべてのエラーハンドラを登録して、トリガされているかどうかを確認します。私nodejsコードのすべて、それの多くは、それはホストとポート 'IO(それだから、クライアントコードがにロードされているブラウザバーのURLは何socket.ioウェブサイト – jfriend00