使用RxJS 6.xWebSocketSubject客户端

使用RxJS 6.xWebSocketSubject客户端,websocket,rxjs,Websocket,Rxjs,我不知道如何在rxjsv6.x 以下是适用于v5.5.6的HTML/JS。注释掉的代码是我试图让它在v6.x中工作的代码: //const{WebSocketSubject}=rxjs.webSocket; //const socket$=WebSocketSubject.create('ws://localhost:8080'); constsocket$=Rx.Observable.webSocket('ws://localhost:8080'); 套接字$.subscribe( (数据)

我不知道如何在rxjs
v6.x

以下是适用于
v5.5.6
的HTML/JS。注释掉的代码是我试图让它在
v6.x
中工作的代码:


//const{WebSocketSubject}=rxjs.webSocket;
//const socket$=WebSocketSubject.create('ws://localhost:8080');
constsocket$=Rx.Observable.webSocket('ws://localhost:8080');
套接字$.subscribe(
(数据)=>console.log(数据),
(错误)=>控制台错误(错误),
()=>console.warn('Completed!')
);
套接字$.next(JSON.stringify({
事件:“事件”,
数据:'测试',
}));
console.log('here')

我用
rxjs@6.1.0
。正如我所怀疑的,我只是使用了版本6的语法错误。见工作示例:


const{WebSocketSubject}=rxjs.webSocket;
constsocket$=newWebSocketSubject('ws://localhost:8080');
套接字$.subscribe(
(数据)=>console.log(数据),
(错误)=>控制台错误(错误),
()=>console.warn('Completed!')
);
套接字$.next({
事件:“事件”,
数据:'测试',
});
console.log('here')

那么,websocket函数的作用是什么呢。我仍然认为这个版本应该有效,而且在某个地方有一个很大的问题。相反,构造函数被破坏,
webSocket
fn工作。。。同意您的意见,特别是因为实现似乎是导出函数webSocket(urlConfigOrSource:string | WebSocketSubjectConfig):WebSocketSubject{返回新的WebSocketSubject(urlConfigOrSource);}@JamiePate您可以阅读关于webSocket函数的文档,它基本上是围绕浏览器提供的w3c兼容WebSocket对象的包装器。不确定为什么webSocket函数不适合您。在rxjs的最新版本中,它只返回了一个
新的WebSocketSubject
(如您在我的链接中所看到的)。我认为这可能是由于Ng serve代理的缘故,我切换到了
rxjs websockets
,因为我的用例是不对称的(传出数据类型与传入数据类型不同,这似乎更常见,在使用WebSocketSubject时会导致问题,因为那时T必须是联合类型)。我的评论提到了代码示例,他说他使用的语法错误,但唯一的区别似乎是
webSocket()
vs
new WebSocketSubject()
但可能他使用的是注释过的
WebSocketSubject.create()
?编辑过的问题很难说:(呃,‘你’我猜,不是‘他’这真的是培根保存的。在文档中,它到处都写着使用
JSON序列化发送到下一个的对象。stringify
,这似乎不如这个解决方案工作得好。看起来
webSocket
工厂函数坏了或者什么的,但可能我在obje中的键错了这似乎对掌握事件和数据也很重要。