1

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> 
4

1 に答える 1

0

app.get(socketstuff)の部分を削除します。これは、jsファイルがで利用できるようになるため必要ありません。

<script src="/socket.io/socket.io.js"></script>

ソケット変数を次のように変更します。

var socket = io.connect();
于 2013-03-20T00:04:41.377 に答える