Chr*_*odz 5 node.js socket.io angular ngx-socket-io
我在 Angular 应用程序的客户端上使用ngx-socket-io 。我已按照“如何使用”部分中的设置进行操作。
当一个客户端使用以下代码连接时,我尝试向所有连接的客户端发出一个事件:
const app = require('express')();
const http = require('http').Server(app);
const io = require('socket.io')(http);
io.on('connect', socket => {
io.emit('foo', 'foo-event');
});
Run Code Online (Sandbox Code Playgroud)
但是,客户端在执行以下操作时永远不会收到此事件:
constructor(
private socket: Socket
) {
this.socket.fromEvent('foo')
.subscribe((e) => {
console.log(e);
});
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我将服务器代码更改为:
io.on('connect', socket => {
socket.on('foo', () => {
io.emit('foo', 'foo-event');
});
});
Run Code Online (Sandbox Code Playgroud)
以及客户端代码:
constructor(
private socket: Socket
) {
this.socket.emit('foo');
this.socket.fromEvent('foo')
.subscribe((e) => {
console.log(e);
});
}
Run Code Online (Sandbox Code Playgroud)
然后它就会按预期工作。
为什么我不能像第二个示例一样先发出一个事件并在客户端上接收它,而不先从客户端发出一个事件?
| 归档时间: |
|
| 查看次数: |
1506 次 |
| 最近记录: |