javascript - 与 wss 连接时,Websocket Web 客户端得到 1006
问题描述
我有一个 websocket node.js 服务器并从 ios、android 成功连接。但是,在 Angular Web 应用程序中使用 rxjs/webSocket 连接时失败,返回 1006。
然后我在本地运行 websocket 服务器,将 localhost:4200 Angular Web 应用程序与服务器连接-> ws://localhost:3000/ws,它工作正常。为什么连接不上wss one。
服务器:
const app = express();
const server = createServer(app);
const cors = require('cors');
app.use("/", express.static("public"));
var corsOptions = {
origin: 'http://localhost:4200',
credentials: true
};
app.use(cors(corsOptions));
const wsApp = expressWs(app, server).app;
wsApp.ws("/ws", handleSocketConnection);
const port = process.env.PORT || 3000;
server.listen(port, () => {
console.log(`server started on http://localhost:${port}`);
});
客户:
public initSocket(clientId): void {
console.log('init socket');
this.socket = webSocket(environment.webSocket);
this.socket.next({ "channel": "login", "name": clientId });
}
public getMessage(): Observable<IWebsocketMessage> {
return new Observable<IWebsocketMessage>(observer => {
this.socket.subscribe((data: IWebsocketMessage) => {
console.log('message received: ' + JSON.stringify(data));
observer.next(data);
}, error => {
console.log(error);
});
});
// return this.socket.asObservable();
}
解决方案
推荐阅读
- git - 提交没有在与 gitlab api 的合并请求中提交
- android - RecyclerView 中的分隔线在展开和折叠项目时表现异常
- python - Iterate and replace values through a numpy array Python
- flutter - Flutter 应用程序在使用睡眠功能时卡住了
- git - git如何删除服务器上的远程引用
- python - 在 Python 中为二十一点游戏从一副牌中绘制独特的牌
- c# - Audit.Net 中的响应标头中缺少位置标头
- powershell - 通过 Powershell 发送电子邮件 (Outlook 2016)
- leaflet - 为自定义地图提取geojson
- python - 如何在 Xcode 中创建缓存文件?