socket.io Web客户端无法正常工作 [英] socket.io web client not working

查看:291
本文介绍了socket.io Web客户端无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近通过socket.io和node.js认识了套接字世界 我在网上找到了这个服务器示例: https://gist.github.com/creationix/707146 我在iOS上创建了第一个客户端,并且与telnet客户端一样接收和发送消息,接下来我想用socket.io创建第二个客户端,以便也在浏览器上接收消息.

I recently met the socket world with socket.io and node.js I found this server example online: https://gist.github.com/creationix/707146 I created a first client on iOS and i receive and dispatch messages, the same as telnet client, next I would like to create a second client with socket.io to receive the messages on the browser too.

我在howto中尝试了该示例: http://socket.io/#how-to-使用,但是在这些示例中,客户端甚至没有被识别!

I tried the example in the howto: http://socket.io/#how-to-use but with these examples the client is not even recognized!

我在哪里错了?我从哪里开始?

Where am I wrong? Where do I start?

服务器代码:

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

非常感谢.

推荐答案

我知道它已经很晚了,您可能已经解决了该问题,但是服务器正在侦听端口5000. 您的客户端正在连接到端口80.

I know its late, and you probably solved the issue but the server is listening on port 5000. Your client is connecting to port 80.

将客户端代码更改为:

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

这篇关于socket.io Web客户端无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆