如何发送消息与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'