2017-10-16 2 views
0

Ich bin mir nicht sicher, warum die Datei nicht gefunden wird. Aus der Dokumentation, die ich gelesen habe, sollte socket.io sich automatisch ausstellen.nodejs - socket.io nicht gefunden

Der Fehler:

polling-xhr.js?bd56:264 GET http://localhost:8081/socket.io/?EIO=3&transport=polling&t=LyYgQtO 404 (Not Found) 

Hier ist mein Code:

Server:

const cors = require('cors') 
var express = require('express') 
var app = express() 
var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); // support json encoded bodies 
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies 

var whitelist = ['http://localhost', 'http://localhost:8080', 'http://127.0.0.1:8080', 'http://127.0.0.1'] 
var corsOptions = { 
    credentials: true, 
    origin: function (origin, callback) { 
    if (whitelist.indexOf(origin) !== -1) { 
     callback(null, true) 
    } else { 
     callback(new Error('Not allowed by CORS')) 
    } 
    }, 
    optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204 
} 

app.use(cors(corsOptions)) 

var http = require('http').Server(app); 
var io = require('socket.io')(http); 
// app.options('*', cors()) 

var db = require('./db.js') 

io.on('connection', function(socket){ 
    console.log('a user connected'); 
}); 

app.post('/', cors(corsOptions), (req, res) => { 
    res.send("post test\n" + req.body.test) 
}) 

app.get('/', cors(corsOptions), (req, res) => { 
    res.send("works\n") 
}) 

app.listen(8081,() => { 
    console.log('API listening on port 8081') 
}) 

Frontend:

<template src="./templates/Test.html"></template> 

<script> 
    import io from 'socket.io-client' 

    export default { 
     name: "test", 
     mounted: function() { 
      io.connect("http://localhost:8081") 
     } 
    } 
</script> 

Antwort

0

Ah, scheint, wie ich musste einfach machen eine andere ausdrückliche Sache, hier ist th e Aktualisierter Server:

const cors = require('cors') 
var express = require('express') 
var app = express() 
var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); // support json encoded bodies 
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies 
// app.use(cors()) 

var whitelist = ['http://localhost', 'http://localhost:8080', 'http://127.0.0.1:8080', 'http://127.0.0.1'] 
var corsOptions = { 
    credentials: true, 
    origin: function (origin, callback) { 
    if (whitelist.indexOf(origin) !== -1) { 
     callback(null, true) 
    } else { 
     callback(new Error('Not allowed by CORS')) 
    } 
    }, 
    optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204 
} 

app.use(cors(corsOptions)) 

var appSocket = express() 
var http = require('http').Server(appSocket); 
var io = require('socket.io')(http); 
// app.options('*', cors()) 

http.listen(8082) 

var db = require('./db.js') 

io.on('connection', function(socket){ 
    console.log('a user connected'); 
}); 

app.post('/', cors(corsOptions), (req, res) => { 
    res.send("post test\n" + req.body.test) 
}) 

app.get('/', cors(corsOptions), (req, res) => { 
    res.send("works\n") 
}) 

app.listen(8081,() => { 
    console.log('API listening on port 8081') 
})