【问题标题】:Socket.io Server can't send data to the clientSocket.io 服务器无法向客户端发送数据
【发布时间】:2018-10-19 22:10:16
【问题描述】:

我正在尝试通过 Socket.io 向客户端发送数据。 如果连接建立,我会收到一条消息。但是在 socket.on('connection') 之外,客户端什么也得不到。

更新!

CLIENT.JS

import io from 'socket.io-client' 

const socket = io('http://192.168.178.54:3000', {
  transports: ['websocket', 'polling'],
})
socket.on('connection', data => socket.emit('recruiter_id', recruiter_id)) // TOP
socket.on('update_contact', data => console.log) // FLOP
socket.on('connection', data => console.log) // FLOP
socket.on('haha', data => console.log) // FLOP

SERVER.JS

this.io = require('socket.io')(this.server, {transports : ['polling', 'websocket']});
this.io.on('connect', (socket) => {
    console.log('connected');
    socket.emit('update_contact', {bla: "hi"});
    socket.emit('connection', {'michael' : 'ist doof'});
    socket.emit('haha', "hi");    // This will be emitted
    socket.on('recruiter_id', (id) => {
        this.socketMap.set(id, id);
        socket.emit('update_contact', {bla: "hi"});        
    })
    socket.emit('update_contact', {bla: "hi"});
});

服务器正在另一台机器上运行。

【问题讨论】:

  • outside of the socket.on('connection') the client doesn't get anything您的客户还在听什么?
  • 我也收听“已连接”,但没有取回任何数据
  • 我的回答有用吗?点赞表示感谢。它解决了你的问题?请接受它:-)
  • 对不起,它根本不起作用!
  • 在开发工具网络面板中,我得到了 101:交换协议。跟这个有关系吗?

标签: node.js reactjs express websocket socket.io


【解决方案1】:

您的客户端不听connection,因为箭头函数从未执行。你应该听connect,而不是connected。试试这个:

CLIENT.JS

socket.on('connect', () => console.log('client connected'));
socket.on('connection', (data) => console.log('connection:', data));

【讨论】:

    【解决方案2】:

    从客户端和服务器中删除传输是解决方案。

    【讨论】:

      猜你喜欢
      • 2018-11-06
      • 1970-01-01
      • 1970-01-01
      • 2021-10-10
      • 2021-02-21
      • 1970-01-01
      • 2015-02-10
      • 2015-10-16
      • 2019-03-15
      相关资源
      最近更新 更多