我是一个初学者与websockets一般,我已经设法使它工作之前,但现在试图将其应用到一个真实的项目,我一直坚持与这个问题.我已经启动了websockets服务器使用socket.io在我的express后端.一切似乎工作正常,但只有我可以看到正在发送的消息.如果我连接到它,我能够发送消息并让服务器接收它们,甚至通过不同的事件将其发送回我,但是连接到同一个服务器的其他客户端监听相同的事件,却没有收到任何消息。想办法解决。先谢谢你了。
我用下面的代码初始化了我的服务器:
var express = require('express')
var http = require('http')
var cors = require('cors')
var bodyParser = require('body-parser')
var app = express()
const server = http.createServer(app)
var socket = require("socket.io")(server, {
cors: {
origin: "*",
methods: ["GET", "POST"],
}})
var io = socket.listen(server);
var PORT = 1234
io.on('connection', (socket) => {
console.log("An user has joined!")
socket.on("newMessage", (data) => {
console.log("the message: " + data)
socket.emit('aabc', data)
console.log("a message has been sent.")
});
});
server.listen(PORT, () => console.log(`Listening on port ${PORT}`));
字符串
“newMessage”事件是由不同的组件发送的,服务器成功地接收到它,根据日志,一切似乎都工作正常。这就是我如何实现一个方法来监听我的react应用程序发出的事件:
useEffect(() => {
const socket = io('http://localhost:1234/');
socket.on('aabc', (data: any) => {
console.log("This is the message: " + data)
}, []);
型
如前所述,我收到了我发送的消息,在我自己的控制台上,但没有其他用户这样做。任何线索,我可能做错了什么?
1条答案
按热度按时间dfty9e191#
要广播到所有连接的客户端,请使用用途:
字符串
要广播到特定房间,请使用用途:
型