我有一个在本地运行 Redis 的 Laravel-echo-server。
我创建了一个测试 API 端点,它发出可广播的事件。
在 http://localhost:8000/api/web-socket-test
我在 echo server CLI 中看到了响应。
我设置了 laravel-echo 身份验证 key ,我可以从服务器 API 获取统计信息http://localhost:6001/apps/APP_ID/status?auth_key=b73a61d0
.
问题在于通过 ws: 协议(protocol)从 Angular 连接到 echo-server。
我的连接代码是
import {webSocket, WebSocketSubject} from 'rxjs/webSocket';
export class MyComponent implements OnInit, OnDestroy {
myWebSocket: WebSocketSubject<any> = webSocket('ws://127.0.0.1:6001');
ngOnInit() {
this.myWebSocket.subscribe(
msg => console.log('message received: ' + msg),
err => console.log(err),
() => console.log('complete')
);
}
最后我得到了一个错误:与“ws://127.0.0.1:6001/”的 WebSocket 连接失败:连接在收到握手响应之前关闭 .
![enter image description here](https://i.stack.imgur.com/0bNKe.png)
如何建立ws连接?
最佳答案
我相信您想尝试使用 socket.io 客户端库而不是使用 rxjs 原始 websocket 进行连接。
尽管从 laravel echo server 文档中并没有立即明确,但项目标题声明它是“用于 Laravel Echo 的 Socket.io 服务器”。所以我假设您应该使用 socket.io 客户端库进行连接。
关于websocket - 连接来自 Angular 项目的 Laravel 回声,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60189796/