无法读取未定义的“套接字+角+节点”的属性“发射”

时间:2018-07-24 12:08:52

标签: node.js angular sockets mean

我在节点服务器中创建了此事件:

socket.on('hello' , function (data) {console.log('hello from the other side');})

我在聊天组件中放了:

constructor(private authService:AuthService,private router : Router) {
const socket=io('http://localhost:4000');
console.log(socket);}


onSendMessage(){
console.log('yep yep');
console.log(this.socket);
this.socket.emit('hello');
}

在我的聊天component.html上:

<div class="col-md-8">
            <div class="chat" id="chat">        </div>
            <form (ngSubmit)="onSendMessage()">
                  <div class="form-group">
                        <label>Enter Message</label>
                        <textarea class="form control" id="message"></textarea>
                        <br/>
                        <input type="submit" class="btn btn-primary" value="Send Message"/>
                  </div>
            </form>
      </div>

结果是这样

  

无法读取未定义的属性“发射”       在ChatComponent.push ../ src / app / components / chat / chat.component.ts.ChatComponent.onSendMessage

这是Web控制台的图像:enter image description here

PS:每当我单击“发送消息”时,套接字始终断开并重新连接

1 个答案:

答案 0 :(得分:0)

我认为问题在于套接字不是您的char组件的成员,您应该首先将其声明为用户this.socket的组件的成员,或者如果它是服务,则直接将其注入到构造函数中即可成为班级成员,您可以使用(this.socket)