[英]Cant get connection with Socket.IO from Angular to NodeJS
我試圖解決這個問題幾個小時..如果有人可以幫助我。 我不明白為什么這不會發出或接收消息。
在 angular 我得到了這個錯誤:
http://localhost:4200/socket.io/?EIO=3&transport=polling&t=NEhK-JT 404
4200 是我的 Angular 應用程序的端口和我的服務器的 8080。
節點JS:
// Define Porta
const port = process.env.PORT || 8080;
var server = app.listen(port, function () {
console.log('Server Online - ' + port);
});
// Socket.io
var io = require('socket.io').listen(server);
io.on('connect', function (socket) {
console.log(`${socket.id} is connected`);
socket.on('room', function (room) {
console.log('room', room)
socket.join(room);
});
});
Angular 9:
import * as io from 'socket.io-client'
public socket
public orgId: string = '123abc'
ngOnInit(): void {
this.setupSocketConnection();
}
chat(nome: string, avatar: number, mensagem: string) {
io.connect(this.orgId).emit('organizacao', {
nome: nome,
mensagem: mensagem,
avatar: avatar,
});
}
setupSocketConnection() {
this.socket = io.connect(`http://localhost:8080`, {
reconnectionDelay: 1000,
reconnection: true,
reconnectionAttempts: 10,
transports: ['websocket'],
agent: false,
upgrade: false,
rejectUnauthorized: false
});
}
從我在服務器的 Console.log
zEnR7Cp23zcur4_kAAAH is connected
86sIiMA8vRZEN-WcAAAI is connected
SU4K2n9jAx_UO2ndAAAJ is connected
UAwlMpNiZWhw_eo9AAAK is connected
K6myruVum4FPKTeLAAAL is connected
Z5QULdZtdsRo5gC1AAAM is connected
如果您嘗試實現rooms
,請閱讀https://socket.io/docs/rooms/
對於您的情況,我在這里看到的是,在服務器端,您正在收聽名為room
的事件,而在客戶端,您正在向organizacao
發送,您還需要使用socket
object 而不是io
,請參閱此處Z5E056C500ADD80B4 //www.npmjs.com/package/socket.io-client
socket.connect(this.orgId).emit('room', {
nome: nome,
mensagem: mensagem,
avatar: avatar,
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.