2017-10-16 14 views
0

ファイルが見つからない理由がわかりません。私が読んだドキュメントから、socket.ioは自動的に公開されるはずです。nodejs - socket.ioが見つかりません

エラー:

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

はここに私のコードです:

サーバー:

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') 
}) 

フロントエンド:私はちょうど行うために必要なよう

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

答えて

0

ああ、そうです別の明示的なもの、ここにある更新されたサーバー:

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') 
}) 
関連する問題