1
Angular2 및 Typescript의 일부 아기 단계를 거친 후 일반 자바 스크립트 CometD 라이브러리를 사용하는 애플리케이션을 작성하기로 결정했습니다. 이 응용 프로그램은 CometD 채널에서 데이터를 가져 와서 어떻게 든 사용자에게 제공해야합니다.Angular 2의 CometD 채널 처리 문제가 발생했습니다.
그래서 기본적으로 CometD js 라이브러리를 참조하여 간단한 구성 요소를 만들었습니다. 나는이 프로그램을 실행할 때
import { Component } from '@angular/core';
import * as cometd from '../cometd/cometd';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app works!';
cometD: any;
constructor() {
console.log("Starting cometD service ...");
this.cometD = new cometd.CometD();
this.cometD.configure({ url: '/services/cometd', logLevel: 'debug', requestHeaders: { "userID": 555 } });
this.title = "CometD demo";
this.cometD.handshake();
this.subscribe()
}
subscribe() {
this.cometD.subscribe('/mychannel', (message)=> this.mychannelHandler(message));
}
mychannelHandler(message) {
console.log("MESSAGE FROM SERVER RECIEVED: " + message + ", data: " + message.data);
this.title = message.data;
}
}
는 cometD에서 콘솔 디버그 메시지를이 - 연결이 OK입니다, 오는 일부 데이터가 있다는 것을,이 채널에 구독을 추가, 일부 출력되었습니다. 그러나.
mychannelHandler는 호출되지 않습니다. 메시지는 절대로 콘솔로 전달되지 않고 제목 변수가 설정되지 않습니다. 내가 뭘 놓치고 있니?
도움이되는 답변을 해주셔서 감사합니다.
감사합니다, 나는 그것을 변경했습니다,하지만 여전히 작동하지 않습니다 :(
subscribe
에 대한 귀하의 콜백this.mychannelHandler
를 호출하지 않습니다 – NullpointerExceptionBuster