1

最近、socket.io と node.js でソケットの世界に出会いました。このサーバーの例をオンラインで見つけました: https://gist.github.com/creationix/707146 iOS で最初のクライアントを作成し、同じようにメッセージを受信して​​ディスパッチします。 telnet クライアントとして、次に、socket.io を使用して 2 番目のクライアントを作成し、ブラウザーでもメッセージを受信したいと考えています。

ハウツーの例を試してみました: http://socket.io/#how-to-useしかし、これらの例ではクライアントは認識されません!

どこが間違っていますか?どこから始めればよいですか?

サーバーコード:

// Load the TCP Library
net = require('net');

// Keep track of the chat clients
var clients = [];

// Start a TCP Server
net.createServer(function (socket) {

// Identify this client
socket.name = socket.remoteAddress + ":" + socket.remotePort 

// Put this new client in the list
clients.push(socket);

// Send a nice welcome message and announce
socket.write("Welcome " + socket.name + "\n");
broadcast(socket.name + " joined the chat\n", socket);

// Handle incoming messages from clients.
socket.on('data', function (data) {
broadcast(socket.name + "> " + data, socket);
});

// Remove the client from the list when it leaves
socket.on('end', function () {
clients.splice(clients.indexOf(socket), 1);
broadcast(socket.name + " left the chat.\n");
});

// Send a message to all clients
function broadcast(message, sender) {
clients.forEach(function (client) {
  // Don't want to send it to sender
  if (client === sender) return;
  client.write(message);
});
// Log it to the server output too
process.stdout.write(message)
}

}).listen(5000);

// Put a friendly message on the terminal of the server.
console.log("Chat server running at port 5000\n");

クライアントコード:

<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
 });
</script>

どうもありがとう。

4

1 に答える 1

1

遅くなったと思いますが、おそらく問題は解決しましたが、サーバーはポート 5000 でリッスンしています。クライアントはポート 80 に接続しています。

clinet コードを次のように変更します。

   <script src="/socket.io/socket.io.js"></script>
   <script>
   var socket = io.connect('http://localhost:5000');
   socket.on('news', function (data) {
   console.log(data);
   socket.emit('my other event', { my: 'data' });
    });
   </script>
于 2013-06-29T13:04:57.970 に答える