Node.js 找不到套接字Io 404

Node.js 找不到套接字Io 404,node.js,angular,typescript,socket.io,Node.js,Angular,Typescript,Socket.io,我正试图在此基础上使用Socket IO在Angular 2中创建聊天,但是当我尝试在服务器上执行测试时,收到以下错误消息: const express = require('express'); const path = require('path'); const app = express(); const server = require('http').Server(app); const io = require('socket.io')(server); const port =

我正试图在此基础上使用Socket IO在Angular 2中创建聊天,但是当我尝试在服务器上执行测试时,收到以下错误消息:

const express = require('express');
const path = require('path');
const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server);

const port = 8000;

app.use(express.static(path.join(__dirname, "/")));

io.on("connection", (socket) => {
    console.log('new connection made');


    socket.on('event1', (data) => {
        console.log(data.msg);
    })

    socket.emit('event2', {
        msg: 'Server to client, do you read me? Over'
    })

    socket.on('event3', (data) => {
        console.log(data.msg);
        socket.emit('event4', {
            msg: 'Loud and Clear :)'
        })
    })
})

server.listen(port, () => {
    console.log("Listening on port" + port);
})
得到 404 (未找到)

应用程序运行在
端口3000
上,而服务器运行在
端口8000
上,我想这就是我出现此错误的原因。有没有一种方法可以让服务器和应用程序在同一个端口上运行

以下是应用程序中的一些代码: 这是我尝试进行测试的组件:

import { Component, OnInit} from '@angular/core';
import {Http, Headers} from '@angular/http';
import {Location} from '@angular/common';
import {Routes, RouterModule, Router} from '@angular/router';
import * as io from 'socket.io-client'

@Component({
  moduleId: module.id,
  selector: 'atendimento',
  templateUrl: `atendimento.component.html`
})

export class AtendimentoComponent implements OnInit{
  socket:SocketIOClient.Socket;
  constructor(private location: Location) { 
    this.socket = io.connect();
  }

  ngOnInit(){
    this.socket.emit('event1',{
      msg: 'Can you hear me? Over'
    });
    this.socket.on('event2', (data:any)=>{
      console.log(data.msg);
      this.socket.emit('event3', {
        msg: 'yes, its working for me'
      })
    })
    this.socket.on('event4', (data:any)=>{
      console.log(data.msg)
    })
  }
这是我与服务器建立连接的
server.js

const express = require('express');
const path = require('path');
const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server);

const port = 8000;

app.use(express.static(path.join(__dirname, "/")));

io.on("connection", (socket) => {
    console.log('new connection made');


    socket.on('event1', (data) => {
        console.log(data.msg);
    })

    socket.emit('event2', {
        msg: 'Server to client, do you read me? Over'
    })

    socket.on('event3', (data) => {
        console.log(data.msg);
        socket.emit('event4', {
            msg: 'Loud and Clear :)'
        })
    })
})

server.listen(port, () => {
    console.log("Listening on port" + port);
})

有人能帮我吗?谢谢,如果您需要更多代码,请告诉我。

只需将socket io与正确的服务器url连接即可:

替换:

this.socket = io.connect();
与:

this.socket = io('http://localhost:8000');