【问题标题】:Cant get connection with Socket.IO from Angular to NodeJS无法从 Angular 到 NodeJS 与 Socket.IO 建立连接
【发布时间】:2020-11-22 07:16:15
【问题描述】:

我试图解决这个问题好几个小时......如果有人可以帮助我。 我不明白为什么这不会发出或接收消息。

在角度我得到了这个错误:

http://localhost:4200/socket.io/?EIO=3&transport=polling&t=NEhK-JT 404

4200 是我的 Angular 应用程序的端口,而 8080 是我的服务器的端口。

NodeJS:

// 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);
    });
});

角度 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

【问题讨论】:

    标签: javascript node.js angular websocket socket.io


    【解决方案1】:

    如果您尝试实现rooms,请阅读https://socket.io/docs/rooms/

    对于您的情况,我在这里看到的是,在服务器端,您正在收听名为 room 的事件,而在客户端,您正在发送到 organizacao 并且您还需要使用 socket 对象而不是io,请从这里引用https://www.npmjs.com/package/socket.io-client

    socket.connect(this.orgId).emit('room', {
          nome: nome,
          mensagem: mensagem,
          avatar: avatar,
        });
    

    【讨论】:

    • 您好,感谢您的帮助。当我更改为套接字时,什么也没有发生。
    • 你把organizacao改成room了吗?
    猜你喜欢
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2023-04-04
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    相关资源
    最近更新 更多