私はnode.jsと socket.io で実験を行い、ローカルで正常に動作します。 HTML ファイルを読み込んで、複数のユーザーのインタラクティブ ボタンを管理できます。
だから私はそれをCloud9にアップロードしましたが、ENOENTがhtmlファイルを見つけようとしてエラーが発生しました。それはルートにあり(ローカルのように)、行は fs.readFile('ex.html' などです...
これはhtmlファイルを開くためのテストのコードで、コンソールにenoentエラーがあります:
var http = require('http');
var fs = require('fs');
http.createServer(function(request, response) {
response.writeHead(200, {
'Content-Type': 'text/html'
});
fs.readFile('ex.html', function(err, data){
if(err) throw err;
response.end(data);
});
}).listen(process.env.PORT, process.env.IP);
これは、空白のページを表示する別のプログラム (フル)です...
サーバー:
var http = require('http');
var fs = require('fs');
// Creation du serveur
var app = http.createServer(function (req, res) {
// On lit notre fichier app.html
fs.readFile('app.html', 'utf-8', function(error, content) {
res.writeHead(200, {'Content-Type' : 'text/html'});
res.end(content);
});
});
var io = require("socket.io");
io = io.listen(app);
io.sockets.on('connection', function (socket) {
socket.on('joue', function () {
socket.broadcast.emit('joue2');
}); // joue
}); // connection
app.listen(process.env.PORT, process.env.IP);
クライアント (app.html):
<html><head> <title>Hello</title></head><body>
<button id="button">clic</button>
<div id="render">a</div>
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
<script type="text/javascript">
var socket = io.connect();
var button = document.getElementById('button');
var render = document.getElementById('render');
button.addEventListener("click", clique, false);
function clique() {
socket.emit('joue');
}
socket.on('joue2', function () {
if (render.innerHTML == 'a') {
render.innerHTML = 'clic multi';
} else {
render.innerHTML = 'a';
}
});
</script></body></html>
サーバーに socket.io をインストールしました。すべてのファイルは node.js フォルダーのルートにあります。私はすでにCloud9に尋ねましたが、彼らはそれがうまくいくと言いました...私の英語が初心者で申し訳ありません。
ご協力ありがとうございました :)