我正在构建一个应用程序,该应用程序使用Angular作为前端,同时将Express和socket.io用作后端。但是,我目前在维护稳定连接方面遇到一些问题。这是我的(相关)代码:
Websocketservice(前端):
websocket服务注入到两个组件中,这两个组件负责登录和注销。注销时调用断开连接功能,而登录时调用connect功能:
import { Injectable } from '@angular/core';
import * as io from 'socket.io-client';
@Injectable()
export class WebsocketService {
public socket;
constructor() {
// ?
}
public connect(token) {
this.socket = io.connect('http://localhost:3000/');
this.socket.emit('token', token);
}
public disconnect() {
if (this.socket) {
this.socket.disconnect();
}
}
}
服务器端
io.on('connection', (socket) => {
socket.on('token', (token) => {
console.log(token);
})
});
此代码当前无法形成稳定的连接。还有一个非常奇怪的行为是,在脱机页面上,websocket仍然尝试连接。