簡體   English   中英

Websocket 客戶端未連接到服務器(nodejs)

[英]Websocket client not connecting to server (nodejs)

我有一個偵聽端口 3000 的 NodeJS express 應用程序。在該應用程序中,我定義了一個 websocket 連接,如下所示:

const express = require('express');
const app = express();
const server = require("http").createServer(app);


const WebSocket = require("ws");
const wss = new WebSocket.Server({ server });

wss.on("connection", ws => {
    ws.send("You (the client) connected");
    ws.on("message", msg => {
        ws.send("Server received your msg: " + msg);
    });
});
app.listen(3000, () => {console.log("Listening on port 3000");});

此代碼位於 NodeJS 后端,它偵聽 websocket 連接。 它在客戶端連接時向客戶端發送一條消息,並在客戶端發送一條消息時發送一條消息。

在字體末端,我的 index.html 中有以下原版 JavaScript 代碼:

const socket = new WebSocket("ws://my.url.com:3000");

socket.addEventListener("open", evnt => {
    console.log(evnt);
    socket.send("Меssage from client");
});


socket.addEventListener("message", evnt => {
    console.log("Received msg from server:", evnt.data);
});

但是我的代碼不起作用:當我運行前端代碼時,套接字 object(在前端)永遠不會連接; 當我嘗試調用socket.send時出現錯誤:

Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.

最終連接超時,但客戶端套接字永遠不會連接到服務器上的套接字。 如何修復我的代碼以便客戶端可以成功連接?

您可以將 app.listen 更改為 server.listen。 這可能是工作。 或者您可以使用 socket.io 執行上述操作,請參閱以下存儲庫 index.js 文件。 https://github.com/yasiruRathnayaka97/pdfLibrest/blob/master/index.js

暫無
暫無

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

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