Socket.io-服务器收到消息但没有将消息发送给客户端?

时间:2020-01-12 19:59:26

标签: angular socket.io

我有此服务器代码:

 //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);。但是我的客户没有得到回应。

1 个答案:

答案 0 :(得分:0)

您的问题出在您的服务器上。您忘记传递参数来指定事件名称:

getPolicyNo()