我最近遇到了socket.io和node.js的socket世界 我在网上找到了这个服务器示例:https://gist.github.com/creationix/707146 我在iOS上创建了第一个客户端,我接收和发送消息,与telnet客户端相同,接下来我想用socket.io创建第二个客户端,以便在浏览器上接收消息。
我在howto中尝试了这个例子: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>
非常感谢。
答案 0 :(得分:0)
我知道它已经很晚了,你可能已经解决了这个问题,但服务器正在侦听端口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>