套接字io和名称空间问题

时间:2018-09-01 12:50:47

标签: node.js angular socket.io

您好,我目前正在研究socket.io,并试图创建一些名称空间,但不知道如何访问其他名称空间。我已经阅读了一些文档,但并没有完全理解。我做了几次尝试,似乎没有什么用。我目前在客户端使用angular,在服务器端使用node.js。我已经制作了以下服务器端代码:

Server.js

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

//namespace
const apple = io.of('/apple');


apple.on('connection', (socket) =>{
    console.log('apple user connected');

    apple.on('disconnect', function(){
        console.log('apple user disconnected');
    });
});

应用程序组件.ts

import { Component, OnInit } from '@angular/core';
import * as io from 'socket.io-client';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent{
  socket;
  apple;


  constructor() {
    this.socket = io();

    //I am not sure what '/apple' is for, is that for route?
    this.apple = io('/apple');
  }

route.js

 app.get('/apple', (req, res) => {
        res.send(console.log('hey'));
    });

我要实现的目标是,当用户访问http://localhost:3000/apple时,我希望该用户访问apple命名空间,以便服务器端控制台打印apple user connected。对不起愚蠢的问题。请给我任何改进我代码的建议...非常感谢您的帮助。

0 个答案:

没有答案