在使用Angular 8和Laravel进行Websockets时,如果出现错误提示“找不到Socket.io客户端”,可能是因为缺少Socket.io客户端库。
解决方法如下:
npm install socket.io-client --save
src/polyfills.ts
文件中添加以下代码:(window as any).global = window;
src/app/app.module.ts
文件中添加以下代码:import { SocketIoModule, SocketIoConfig } from 'ngx-socket-io';
const config: SocketIoConfig = { url: 'http://localhost:3000', options: {} };
@NgModule({
imports: [
// ...
SocketIoModule.forRoot(config)
],
// ...
})
export class AppModule { }
请确保将http://localhost:3000
替换为您Laravel项目的WebSocket服务器URL。
Socket
:import { Component } from '@angular/core';
import { Socket } from 'ngx-socket-io';
@Component({
selector: 'app-root',
template: `
`
})
export class AppComponent {
constructor(private socket: Socket) { }
sendMessage() {
this.socket.emit('message', 'Hello World!');
}
}
这样,您应该能够使用Socket.io在Angular 8和Laravel之间建立Websockets连接了。记得在Laravel项目中使用Socket.io服务器和适当的事件处理程序。
上一篇:Angular 8和jQuery