簡體   English   中英

客戶端找不到Socket.io

[英]Socket.io is not found in the client-side

這是我的服務器端:

const path = require('path');
const http = require('http');
const express = require('express');

const socketio = require('socket.io');

const app = express();
 
const server = http.createServer(app);
const io = socketio(server);
const port = 3000 || process.env.PORT;

app.listen(port, () => {
console.log(`server running on port ${port}`);
});

io.on('connection', socket => {
console.log(socket);
});

這是我的客戶端:

   <script src="/socket.io/socket.io.js"></script>
   <script>
   const socket = io();
   </script>
   </body>

   </html>

我重新正確安裝了所有模塊,但沒有幫助。

問題是您正在創建兩個 Web 服務器,將 socket.io 附加到其中一個,但只啟動另一個。

這兩行代碼都創建了一個新的 Web 服務器:

const server = http.createServer(app);
app.listen(port, ...);

但是,實際上只有第二個開始了,而這不是您將 socket.io 綁定到的那個。 因此,您綁定 socket.io 的服務器永遠不會啟動,因此應該與您的 socket.io 服務器通信的客戶端內容都不會正常工作。


要修復它,請將您的服務器代碼更改為:

const path = require('path');
const express = require('express');
const socketio = require('socket.io');

const app = express();
const port = 3000 || process.env.PORT;
const server = app.listen(port, () => {
    console.log(`server running on port ${port}`);
});

const io = socketio(server);

io.on('connection', socket => {
    console.log(socket);
});

現在,您將只創建一個 Web 服務器,啟動該服務器並將 socket.io 綁定到該服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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