【问题标题】:socket.io MEAN stack ( why l can't connect to event ?)socket.io MEAN 堆栈(为什么我无法连接到事件?)
【发布时间】:2017-11-07 09:12:36
【问题描述】:

服务器端:

app.js

let express = require('express'),
    app = express(),
    http = require('http').Server(app);
    io = require('socket.io')(http);
http.listen(port, function () {
  ...
});
io.on('connection', (socket) =>{
    socket.emit('some_event',{user : 'some_name'})
});

路由/index.js

let router = express.Router();
.....
router.get('/api/telegram/activation-code',user.isLoggedIn(),telegramActivation);

客户端:

any_angular.component.ts

    import * as io from 'socket.io-client';
    ...
    ngOnInit(){
      let socket = io('/api/telegram/activation-code');
          socket.on('connection', (socket) =>{
            socket.on('some_event',(data) =>{
               console.log(data)
             })
          });
    }

我尝试从服务器端获取一些数据。但是当我移动到我的 /api/telegram/activation-code 路线时,我没有收到数据。谁能给我解释一下我的错误在哪里?

【问题讨论】:

    标签: node.js angular express socket.io


    【解决方案1】:

    可能是您的背面和正面位于不同的命名空间中。在你的节点代码中试试这个

    io.of('/api/telegram/activation-code').on('connection...
    

    https://socket.io/docs/rooms-and-namespaces/#custom-namespaces

    【讨论】:

    • 我在我的代码中这样做,但我有同样的问题 io.of('/api/telegram/activation-code').on('connection', (socket) => { socket.emit('some_event',{user : 'some_name'}) });
    • @AndreyRadkevich 你能提供一个“框架”标签处于活动状态的 ws 连接的屏幕截图吗?
    • 对不起,我不明白你的信息。你能再解释一下吗?我应该为你提供什么?
    • 好吧,我真的不是客户端上的 socket.io 专家,但我认为你不应该在那里听“连接”事件。您可以删除客户端上的“连接”事件处理程序并直接处理“某些事件”吗?
    猜你喜欢
    • 2019-02-26
    • 2021-05-11
    • 1970-01-01
    • 2021-08-06
    • 2013-10-25
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 2018-07-06
    相关资源
    最近更新 更多