Socket.io 服务器无法向客户端发送数据
Posted
技术标签:
【中文标题】Socket.io 服务器无法向客户端发送数据【英文标题】:Socket.io Server can't send data to the client 【发布时间】: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:交换协议。跟这个有关系吗?
【参考方案1】:
您的客户端不听connection
,因为箭头函数从未执行。你应该听connect
,而不是connected
。试试这个:
CLIENT.JS
socket.on('connect', () => console.log('client connected'));
socket.on('connection', (data) => console.log('connection:', data));
【讨论】:
【参考方案2】:从客户端和服务器中删除传输是解决方案。
【讨论】:
以上是关于Socket.io 服务器无法向客户端发送数据的主要内容,如果未能解决你的问题,请参考以下文章
PHP 向 Node / Socket.IO 服务器发送消息