Socket.io,Angular,Express,获得稳定的websocket连接

时间:2018-07-03 17:31:32

标签: javascript node.js angular express socket.io

我正在构建一个应用程序,该应用程序使用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仍然尝试连接。

问题:

  1. 如何获得稳定的连接?
  2. 为什么前端不尝试在不调用服务中的connect函数的情况下尝试连接到后端?

0 个答案:

没有答案