如何发送消息与websocket

我试图在WebSocket中发送消息到TypeScript。 我用两个函数创build了一个Socket服务:.onMessage()和.emit(message):

import { Injectable } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import { Message } from '../message/message.model'; import * as socketIo from 'socket.io-client'; const SERVER_URL = 'http://localhost:8080'; @Injectable() export class SocketService { private socket; public initSocket(): void { this.socket = socketIo(SERVER_URL); } public send(message?: Message): void { this.socket.emit('displayHello', { to: 'flo@NXS_DEV_FLO2', from: 'flo@NXS_DEV_FLO2', name: 'displayHello'}) } public onMessage(): Observable<any> { return new Observable(observer => { this.socket.on('message', (data) => { observer.next(data); }); }); } } 

我的.onMessage函数不显示任何错误。 虽然我的.emit(消息)函数显示这是一个错误:

 ERROR TypeError: Cannot read property 'emit' of undefined 

那应该怎么办?

///////////////编辑///////////////////

我打电话给我的function是这样的:

 addNewMessage(newMessage: Message): void { this.socketService.initSocket(); this.socketService.onMessage(); this.socketService.send(newMessage); } 

/////////////编辑2 ////////////////////

当我在我的控制台testing这个,它的工作原理:

 public onMessage(): Observable<any> { return new Observable(observer => { this.socket.on('displayHello', function(data) { $.pnotify({ title: 'Hello', text: data.from + ' te dis bonjour ' + data.to, type: 'info' }); }); } 

但是当我试图放入我的代码时,我有这个错误:

 Property 'pnotify' does not exist on type '(search: string) => ElementFinder'