节点 js - Socket.io-客户端未连接到 socket.io 服务器
Node js - Socket.io-client is not connecting to socket.io server
我正在尝试使用以下代码连接到 socket.io-客户端:
服务器:
// Load requirements
var http = require('http'),
io = require('socket.io');
// Create server & socket
var server = http.createServer(function(req, res){
// Send HTML headers and message
res.writeHead(404, {'Content-Type': 'text/html'});
res.end('<h1>Aw, snap! 404</h1>');
});
server.listen(8080);
io = io.listen(server);
// Add a connect listener
io.sockets.on('connection', function(socket) {
console.log('Client connected.');
// Disconnect listener
socket.on('disconnect', function() {
console.log('Client disconnected.');
});
});
客户:
console.log('1');
// Connect to server
var io = require('socket.io-client')
var socket = io.connect('localhost:8080', {reconnect: true});
console.log('2');
// Add a connect listener
socket.on('connect', function(socket) {
console.log('Connected!');
});
console.log('3');
我没有收到连接控制台日志或客户端连接控制台日志,我不知道为什么!代码示例取自发布的另一个问题:Link 我没有看到任何解决问题的方法...
假设您使用的是大于 1.0 的 socket.io 版本,在服务器上,将此更改为:
// Add a connect listener
io.sockets.on('connection', function(socket) {
console.log('Client connected.');
// Disconnect listener
socket.on('disconnect', function() {
console.log('Client disconnected.');
});
});
对此:
// Add a connect listener
io.on('connection', function(socket) {
console.log('Client connected.');
// Disconnect listener
socket.on('disconnect', function() {
console.log('Client disconnected.');
});
});
请参阅 socket.io 文档 reference here。
您不希望仅在已连接的套接字上侦听此事件。您想在任何套接字上侦听此事件,即使是新创建的套接字。
另外,阅读互联网上随机位置的 socket.io 代码时要非常小心。从 v0.9 到 v1.0,有些事情发生了显着变化(我不知道这是否是其中之一)。您通常应该始终首先从 socket.io 文档站点开始,因为它始终代表最新版本。然后,如果查看其他互联网参考资料,请确保您只使用 2014 年年中之后的文章。如果您不知道一篇文章的年份,最好不要在没有最近一篇文章的证实的情况下依赖它。
还需要添加带有路径的协议。
改变
var socket = io.connect('localhost:8080', {reconnect: true});
至
var socket = io.connect('http://localhost:8080', {reconnect: true});
您可以使用本地主机。它也适用于我。您必须使用适合您的 IP 地址和端口
使用相同版本的socket io 客户端和服务器。它将完美运行。
我正在尝试使用以下代码连接到 socket.io-客户端:
服务器:
// Load requirements
var http = require('http'),
io = require('socket.io');
// Create server & socket
var server = http.createServer(function(req, res){
// Send HTML headers and message
res.writeHead(404, {'Content-Type': 'text/html'});
res.end('<h1>Aw, snap! 404</h1>');
});
server.listen(8080);
io = io.listen(server);
// Add a connect listener
io.sockets.on('connection', function(socket) {
console.log('Client connected.');
// Disconnect listener
socket.on('disconnect', function() {
console.log('Client disconnected.');
});
});
客户:
console.log('1');
// Connect to server
var io = require('socket.io-client')
var socket = io.connect('localhost:8080', {reconnect: true});
console.log('2');
// Add a connect listener
socket.on('connect', function(socket) {
console.log('Connected!');
});
console.log('3');
我没有收到连接控制台日志或客户端连接控制台日志,我不知道为什么!代码示例取自发布的另一个问题:Link 我没有看到任何解决问题的方法...
假设您使用的是大于 1.0 的 socket.io 版本,在服务器上,将此更改为:
// Add a connect listener
io.sockets.on('connection', function(socket) {
console.log('Client connected.');
// Disconnect listener
socket.on('disconnect', function() {
console.log('Client disconnected.');
});
});
对此:
// Add a connect listener
io.on('connection', function(socket) {
console.log('Client connected.');
// Disconnect listener
socket.on('disconnect', function() {
console.log('Client disconnected.');
});
});
请参阅 socket.io 文档 reference here。
您不希望仅在已连接的套接字上侦听此事件。您想在任何套接字上侦听此事件,即使是新创建的套接字。
另外,阅读互联网上随机位置的 socket.io 代码时要非常小心。从 v0.9 到 v1.0,有些事情发生了显着变化(我不知道这是否是其中之一)。您通常应该始终首先从 socket.io 文档站点开始,因为它始终代表最新版本。然后,如果查看其他互联网参考资料,请确保您只使用 2014 年年中之后的文章。如果您不知道一篇文章的年份,最好不要在没有最近一篇文章的证实的情况下依赖它。
还需要添加带有路径的协议。
改变
var socket = io.connect('localhost:8080', {reconnect: true});
至
var socket = io.connect('http://localhost:8080', {reconnect: true});
您可以使用本地主机。它也适用于我。您必须使用适合您的 IP 地址和端口
使用相同版本的socket io 客户端和服务器。它将完美运行。