簡體   English   中英

“連接”上的 Socket.io 服務器未觸發,客戶端事件未觸發也是如此

[英]Socket.io server on "connection" not firing, same for the client event not firing

嗨,嘗試使用 socket io 構建一個快速后端,但無論出於何種原因,我都沒有觸發連接事件。 我在服務器和客戶端上使用 3.1.2 版,所以這不是問題。 一旦我啟動客戶端應用程序,我就會在快速服務器中獲得一些日志,如下所示:

::ffff:127.0.0.1 - - [24/Oct/2021:11:14:10 +0000] "GET /socket.io/?EIO=4&transport=polling&t=Noo0Wgb&b64=1 HTTP/1.1" 404 149 "-" “節點-XMLHttpRequest”

但是 on connection 事件不會在任何一方觸發。

 const dotenv = require("dotenv").config(); const express = require("express"); const app = express(); const server = require("http").createServer(app); const morgan = require("morgan"); const cors = require("cors"); const config = require("./src/config/general"); const io = require("socket.io")(server); const SECURITY_KEY = process.env.SECURITYKEY; //database const connect = require("./src/config/database/connect"); app.set("json spaces", 2); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(cors()); app.use(morgan("combined")); //controllers const ExchangeController = require("./src/api/exchange/exchange.controller"); const exchangeController = new ExchangeController(io); //initially wanted to socket logic in that file, but even in the server.js its not working either const LogController = require("./src/api/log/log.controller"); const logController = new LogController(); const StrategyController = require("./src/api/strategy/strategy.controller"); const strategyController = new StrategyController(); app.set("json spaces", 2); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(cors()); app.use(morgan("combined")); app.use("/api/exchange", exchangeController.router); app.use("/api/log", logController.router); app.use("/api/strategy", strategyController.router); io.on("connection", (socket) => { console.log("incoming socket connection"); socket.on("buy", async (data) => { try { let payload = JSON.parse(data); let symbols = payload.symbol.split(","); let strategy; if (payload.hasOwnProperty("strat")) { strategy = payload.strat; } if (payload.security == SECURITY_KEY) { for (let i = 0; i < symbols.length; i++) { exchangeManager.performStrategy(strategy, symbols[i]); } } } catch (error) { console.log("io.on", error.message); } }); }); app.listen(config.PORT, async () => { await connect(); console.log(`server started on port ${config.PORT}`); });

客戶端測試代碼

 //client.js const io = require('socket.io-client'); const socket = io("ws://localhost:3000") // Add a connect listener socket.on('connect', function (socket) { console.log('Connected!'); }); socket.on('error', function (socket) { console.log('error!'); });

我完全迷失了這一點,並嘗試了一切但沒有成功。

通過將 app.listen 切換到 server.listen 來解決錯誤,我的錯。

暫無
暫無

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

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