Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Websocket 从角度项目连接Laravel echo_Websocket_Redis_Socket.io_Laravel Echo_Angular Socket Io - Fatal编程技术网

Websocket 从角度项目连接Laravel echo

Websocket 从角度项目连接Laravel echo,websocket,redis,socket.io,laravel-echo,angular-socket-io,Websocket,Redis,Socket.io,Laravel Echo,Angular Socket Io,我有一个Laravel echo服务器,在本地服务器上运行Redis。 我创建了一个测试API端点,它发出可广播事件 关于http://localhost:8000/api/web-套接字测试我在echo server CLI中看到响应 我设置了laravel echo身份验证密钥,可以从服务器API获取统计信息 http://localhost:6001/apps/APP_ID/status?auth_key=b73a61d0 问题在于通过ws:协议从Angular连接到echo服务器。 我

我有一个Laravel echo服务器,在本地服务器上运行Redis。 我创建了一个测试API端点,它发出可广播事件

关于
http://localhost:8000/api/web-套接字测试
我在echo server CLI中看到响应

我设置了laravel echo身份验证密钥,可以从服务器API获取统计信息
http://localhost:6001/apps/APP_ID/status?auth_key=b73a61d0

问题在于通过ws:协议从Angular连接到echo服务器。 我的连接代码是

import {webSocket, WebSocketSubject} from 'rxjs/webSocket';
导出类MyComponent实现OnInit、OnDestroy{
myWebSocket:WebSocket主题


如何建立ws-connection?

我相信您希望尝试使用socket.io客户端库连接,而不是使用rxjs原始WebSocket


虽然从laravel echo服务器文档中还不清楚,但项目标题说明它是“laravel echo的Socket.io服务器”。因此我假设您应该使用Socket.io客户端库进行连接。

但是我应该使用什么url和协议?这是连接laravel ech中的
ws://127.0.0.1:6001
的正确方法吗o docs您似乎不需要指定此选项,只需指定主机和端口。您需要传入io的客户端实例(socket.io client),然后确保指定值为“socket.io”的“广播器”选项。有关更多详细信息,请参阅laravel echo socketio-connector.ts源代码:
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')
    );
  }