我尝试在Angular 6项目中使用socket.io,但它似乎不起作用。这是我的问题:
我已经安装了socket.io-client (带npm)
这是我的服务器代码:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
var path = require('path');
app.use(express.static(__dirname + '/client/public/dist/public'));
var db_url = 'mongodb://localhost:27017/DBName'
require('./server/config/mongoose.js')(db_url);
require('./server/config/routes.js')(app)
app.all("*", (req,res,next) => {
res.sendFile(path.resolve("./client/public/dist/public/index.html"))
});
const server = app.listen(1337);
console.log("listening on port 1337")
const io = require('socket.io')(server);
io.on('connection', function (socket) {
socket.on('init',function(){
console.log("Socket id is",socket.id)
io.emit('message',{msg:'testing socket'})
console.log("after emit statement")
})
});
app.listen(8000, function() {
console.log("listening on port 8000");
})
在我的Angular项目中,我在一个组件的ts文件( my -rooms.component.ts)中,代码如下:
import { Component, OnInit } from '@angular/core';
import { HttpService } from '../http.service';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { Injectable } from '@angular/core';
import * as io from 'socket.io-client';
@Component({
selector: 'app-my-rooms',
templateUrl: './my-rooms.component.html',
styleUrls: ['./my-rooms.component.css']
})
export class MyRoomsComponent implements OnInit {
user_email = localStorage.getItem('email');
new_room = {name:""};
errors = {};
all_rooms = [];
joined_rooms = [];
socket: SocketIOClient.Socket;
constructor(private _httpService: HttpService,
private _route: ActivatedRoute,
private _router: Router) {
this.socket = io.connect();
}
ngOnInit() {
console.log(localStorage)
if (!localStorage.getItem('loggedIn')) {
this._router.navigate(['/home']);
}
else {
this.getAllRooms();
this.getJoinedRooms();
}
this.socket.emit('init');
this.socket.on('message',function(data){
console.log(data.msg)
})
}
//Plus other functions for this component
基本上,无论是在终端还是在浏览器的控制台中,都没有记录任何内容。有人能帮上忙吗?谢谢!
https://stackoverflow.com/questions/51976786
复制相似问题