[英]Error 404 when trying to get socket.io
我正在編寫一個使用socket.io為網頁提供服務的節點服務器。 但是當我加載頁面時,控制台顯示錯誤
(索引):6 GET http:// localhost:3000 / socket.io / socket.io.js
毫不奇怪,緊隨其后的是:
(索引):51未捕獲的參考錯誤:未定義io
當我檢查“網絡”選項卡中頁面加載的文件時,它顯示socket.io錯誤404。 但是令人驚訝的是,當我啟動其他程序時,我使用socket.io進行了正常工作。 唯一的區別是,我使用快遞。
這是我的代碼:
app.js:
var express = require('express');
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
app.use(express.static("./app"));
app.get("/", function(req, res, next) {
res.sendFile(__dirname + "/index.html")
});
app.listen(3000);
console.log("Server started in http://localhost:" + 3000);
io.on('connection', function(socket){
socket.emit('news', {hello :'world'});
socket.on('my other event', function(data){
console.log(data);
});
});
index.html:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<script src="/socket.io/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
[Some unrelated text]
<script>
var socket = io.connect('http://localhost');
socket.on('news', function(data){
console.log(data);
socket.emit('my other event', {my: 'data'});
});
</script>
</body>
</html>
謝謝你的幫助 !
更改
app.listen(3000);
至
server.listen(3000);
您的socket.io已連接到http服務器server
。 參見行: var io = require('socket.io')(server);
而不是Express Server app
。
顯然,socket.io無法提供任何服務,因為它期望的服務器從未開始監聽。
檢測過! 在我的本地環境中已成功替換了此答案!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.