簡體   English   中英

嘗試獲取socket.io時出現錯誤404

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM