我有此服务器代码:
//socket IO
let socketIO = require('socket.io');
let io = socketIO(server);
io.on('connection', (socket) => {
console.log('user connected');
socket.on('new-message', (message) => {
io.emit(message);
console.log("socket message " + message);
});
});
这是我的客户服务:
private socket;
private url = 'http://localhost:3000';
constructor(private http: HttpClient) {
this.socket = io(this.url);
}
createMessages(message: Message) {
this.socket.emit('new-message', message.messages[0].messageText);
return this.http.post('http://localhost:3000/messages/', message);
}
getMessage() {
let observable = new Observable(observer => {
this.socket.on('new-message', (data) => {
observer.next(data);
});
return () => {
this.socket.disconnect();
};
})
return observable;
}
和组件代码:
ngOnInit() {
console.log(this.userService.currentUserValue);
this.messageService
.getMessage()
.subscribe((message: string) => {
console.log('Message socket ' + message);
}, error => {
console.log(error + " Error");
});
}
当我运行它时,我的服务器输出:用户已连接,并且console.log(“ socket message” + message);。但是我的客户没有得到回应。
答案 0 :(得分:0)
您的问题出在您的服务器上。您忘记传递参数来指定事件名称:
getPolicyNo()