node.js、express、および socket.io を使用する基本的なチャット アプリケーションを実行しようとしています。サーバー側またはクライアント側でエラーが発生しないところまで、すべてを正常に実行できました。ただし、アプリケーションは機能しません。
2 つのブラウザー ウィンドウを開いて、自分とチャットできるはずです。自分宛にチャット メッセージを送信するためにテキスト ボックスに入力しますが、何も受信されません。何も送信されていないことも確かです。FireBug を使用すると、ネットワーク経由で送信される新しいリクエストが表示されません。ただし、Firebug を使用すると、要求されたすべてのインクルード ファイルがブラウザーに正しく提供されていることもわかります。index.html、socket.io.js、jquery.min.js の 3 つしかありません。
私が使用しているチュートリアルへのリンクは次のとおりです 。
server.js ファイルを使用して、動作させるために少し変更しました。主な問題は、ブラウザが socket.io.js を受信していなかったため、server.js がその場所を認識できるようにパスを追加したことです。このように: app.get('/sio/socket.io.js', function (req, res) {........それは私の問題でしょうか?
これがサーバーコードです - server.js:
var express = require('express'), app = express(), http = require('http'), server = http.createServer(app), io = require('socket.io').listen(server);
// listen for new web clients:
server.listen(8080);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
app.get('/sio/socket.io.js', function (req, res) {
res.sendfile('/root/nodejs/node-v0.10.0/node_modules/socket.io/lib/socket.io.js');
});
io.sockets.on('connection', function (socket) { socket.on('sendMessage', function (data) { socket.broadcast.emit('message', data); socket.emit('message', { text: '<strong>'+data.text+'</strong>' });
});
});
index.html ファイルは次のとおりです。
<html>
<body>
<script src="/sio/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
var socket = io.connect('http://localhost');
socket.on('message', function (data) {
$('#chat').append(data.text + '<br />');
});
$('#send').click(function () {
socket.emit('sendMessage', { text: $('#text').val() });
$('text').val('');
});
});
</script>
<div id="chat" style="width: 500px; height: 300px; border: 1px solid black">
</div>
<input type="text" name="text" id="text">
<input type="button" name="send" id="send" value="send">
</body>
</html>