如何连接服务器?

时间:2019-11-30 16:37:53

标签: node.js reactjs

我正在尝试从Youtube教程构建聊天应用程序,但我无法连接“服务器”,而只能连接“服务器正在运行”。 我的项目在这里https://danclaudiu95@bitbucket.org/danclaudiu95/chat-app-io.git server.js包含:

var express = require('express'),
    app = express(),
    io = require('socket.io').listen(app);
    usernames = [];

app.get('/', function(req, res){
    res.sendFile(__dirname + '/index.html');
});

app.listen(process.env.PORT || 3000);
console.log('Server Running...');

app.get('/', function(req, res){
    res.sendFile(__dirname + '/index.html');
});

io.sockets.on('connection', function(socket){
    console.log('Socket Connected...');

    socket.on('new user', function(data, callback){
        if(usernames.indexOf(data) != -1){
            callback(false);
        } else {
            callback(true);
            socket.username = data;
            usernames.push(socket.username);
            updateUsernames();
        }
    });

    // Update Usernames
    function updateUsernames(){
        io.sockets.emit('usernames', usernames);
    }

    // Send Message
    socket.on('send message', function(data){
        io.sockets.emit('new message', {msg: data, user:socket.username});
    });

    // Disconnect
    socket.on('disconnect', function(data){
        if(!socket.username){
            return;
        }

        usernames.splice(usernames.indexOf(socket.username), 1);
        updateUsernames();
    });
});

有人可以指出我在做什么错吗?

在server.js文件中,“ var require = require('express')”行标有“ require”字样。

1 个答案:

答案 0 :(得分:0)

删除要求http的内容。 Express已经为您做到了。

var express = require('express'),
    app = express(),
    server = require('http').createServer(app),
    io = require('socket.io').listen(server);
    usernames = [];

app.get('/', function(req, res){
    res.sendFile(__dirname + '/index.html');
});

app.listen(process.env.PORT || 3000);
console.log('Server Running...');

//.. The rest of your code