[英]SocketIO send message to client via API route
我在我的express
API 中有一條路線,我想使用websocket向客戶端發送消息。 在這種情況下,客戶端是另一個 Node.js 應用程序。 在這個 Node.js 應用程序中,我嘗試連接到套接字並打印收到的消息。 API 和 Node 應用程序都在不同的端口上。 有人可以幫我完成這項工作嗎?
這是我將套接字傳遞給我的快速路由的方法:
const server = app.listen(PORT, () => {
console.log(`Server on port ${PORT}`);
});
const io = require("socket.io")(server);
app.set("socketio", io);
這是我的 REST API 路線:
exports.getAll = function(req,res){
var io = req.app.get('socketio');
io.emit('hi!');
}
這是我的套接字 io 客戶端,它使用socket.io-client
const socket = io('http://localhost:3000');
socket.on("message", data => {
console.log(data);
});
不幸的是,我沒有收到來自我的 API 的“嗨”消息。
當我調用/api/getAll
時,我的客戶端應用程序中沒有收到消息。
通過socket.io
發出事件時,您需要在數據之前定義事件名稱。
例子:
exports.getAll = function(req, res){
var io = req.app.get("socketio");
io.emit("message", "hi!");
}
現在您將能夠從客戶端接收message
事件。
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.