簡體   English   中英

如何從服務器端向客戶端發送 websocket 消息

[英]How to send websocket message to client from the serverside

您好,我有兩個后端 laravel 和 Nodejs,並且會有一個前端。

因此,如果前端在 laravel 上請求某些內容,並且 laravel 向 node 請求,並且 node 必須通過 WebSocket 向客戶端發送消息。 怎么做?

索引.js

const app = require('express')();
const http = require('http');
const WebSocket = require('ws')

//initialize a simple http server
const server = http.createServer(app);
app.get('/', function(req, res) {
  res.sendFile(__dirname + '/index.html');
});
let sendNotification;
//initialize the WebSocket server instance
const wss = new WebSocket.Server({ server });
let socketapi = require('./socketapi')
socketapi.start(wss)
//start our server
server.listen(process.env.PORT || 5555, () => {
    console.log(`Server started on port ${server.address().port} :)`);
});

socketapi.js

module.exports ={
    start: (wss) => {
        wss.on('connection', (ws) => {
            console.log('connected!!!');
            console.log(socketIds)
            //connection is up, let's add a simple simple event
            // triggerMessage('data');
            ws.id=uuidv4()
            ws.on('message', (message) => {
                console.log('received: %s', message);
                // ws.send(`Hello, you sent -> ${message}`);
            });
        }
    }
 }

現在我想在控制器文件中使用這個套接字並在收到請求時發送它。

當我導出和導入套接字時,它記錄為未定義。

我已將 ws 存儲在具有特定 ID 的數組中,並且該 ID 與 DB 中的數據相關聯,因此我可以使用該 ID 獲取 ws 並在函數調用時通過該 ws 發送

暫無
暫無

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

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