我最近在我的一个长期项目中进入了socket.io。这可能就是为什么我有这么难的原因,因为他们的“入门”部分没有考虑到你可能已经深入开发自己的应用程序了。主要问题是连接,它不会这样做,客户端就是。
我不断得到一个由404 not found
引起的CANNOT POST /socket.io/
哪个是正确的,它显然不明显,主要是因为那不是socket.io位置所在(它在node_modules中通常)。其次,如果我为此创建一条路线,它绝对没有。所以这里是代码初始化它:
/*jshint esversion: 6*/
const express = require('express');
const http = require('http');
const bodyParser = require('body-parser');
const path = require('path');
const expressValidator = require('express-validator');
const flash = require('connect-flash');
const session = require('express-session');
const passport = require('passport');
const db = require('./config/db');
// Init App
const app = express();
// Init http server
const server = http.createServer(app);
// init socket
const io = require('socket.io').listen(server);
以下是尝试连接到它的客户端:
if (window.location.hostname == 'playkog.net' || window.location.hostname == 'www.playkog.net') {
var port = 443;
} else {
var port = 8080;
}
var connected = false;
var socket = io.connect(window.location.hostname + ':' + port, { 'connect timeout': 5000 });
// Connection Successful
socket.on('connect', function () {
console.log('a user connected');
connected = true;
});
socket.on('disconnect', function () {
console.log('user disconnected');
connected = false;
});
我想我必须连接到另一个端口,但是我不确定哪个,也不是我的问题(或者只是问题)。当然这对于这类东西来说是非常新的(最好是业余爱好者),其中一些东西就在我的头上。
以下是我的控制台的屏幕截图