【问题标题】:Socket.Io not firing any events in ChromeSocket.Io 没有在 Chrome 中触发任何事件
【发布时间】:2020-12-07 20:34:01
【问题描述】:

我正在尝试在我的 Angular 应用程序中建立一个 Socket.IO 连接,但无法让它工作!这是我当前的代码:

    import { io } from 'socket.io-client';

    var sock = io('http://my.socket.server', {
        reconnectionAttempts: 10,
    });
    sock.on('connect', () => { console.log('connect'); });
    sock.on('reconnect_attempt', () => { console.log('recon'); });
    sock.on('reconnecting', () => { console.log('recon'); });
    sock.onAny(() => { console.log('any'); });
    sock.close();

我可以看到浏览器正在尝试连接,我什至可以设置重新连接尝试 - 所以 something 接缝工作。但是我的on appender 都没有被调用!这可能是一个绝对微不足道的问题......

谢谢!

编辑:现在尝试了这段代码,我也没有看到任何事件:

    var sock = io('https://socketio-chat-h9jt.herokuapp.com/', {
        reconnectionAttempts: 5,
    });

    sock.on('connection', sock => {
        alert(1);
        sock.on('connect', () => { console.log('connect'); });
        sock.on('reconnect_attempt', () => { console.log('recon'); });
        sock.on('reconnecting', () => { console.log('recon'); });
        sock.onAny(() => { console.log('any'); });
        sock.close();
    });

【问题讨论】:

    标签: angular socket.io


    【解决方案1】:

    如果这是客户端,那么根据 socket.io 文档https://socket.io/docs/v3/index.html,语法应该是这样的

    const io = require('socket.io')(3000);
    
    io.on('connection', socket => {
      socket.on('message', (data) => {
        console.log(data);
      });
    });
    

    所以所有的 socket.on 函数都应该在一个更大的 io.on('connection') 函数中。

    【讨论】:

    • 那么如果根本没有建立连接就不可能出现连接错误?
    • 是的,如果这是客户端 javascript。
    猜你喜欢
    • 2012-05-07
    • 1970-01-01
    • 2020-08-19
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    相关资源
    最近更新 更多