繁体   English   中英

如何在ExpressJS中连接socket.io

[英]How to connect socket.io in ExpressJS

早上好,为什么此代码不起作用(服务器响应,但“ io.on”不):

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

//this code not work in console // even it can not see
io.on('connection', function(socket) {
        console.log('a user connect');
        socket.on('disconnect', function() {
            console.log('a user disconnect');
        });
    });

//server respond
http.listen(3000, function() {
        console.log('Server running at 3000');
    });

我是初学者,express和socket.io,我是npm下载的

您需要有一个服务器和一个与套接字io服务器建立连接的客户端。

根据我对您的代码的了解,我猜您想执行以下操作:

首先,您的server.js:

#!/usr/bin/env node
var http = require('http');
var express = require('express');
var app = express();
var io = require('socket.io');

var port = 3000;
app.set('port', port);
var server = http.createServer(app);
server.listen(port);

var socketio = io.listen(server);

setInterval(function() {
    console.log("Emitting..");
    socketio.emit('data', {"x":"123"}); 
}, 2000);

module.exports = app;

然后您的client.html :(我正在编写一个客户端,它将登录到浏览器控制台。)

<html>
<head></head>
<body>
<script src="http://localhost:3000/socket.io/socket.io.js"></script>
<script>
    var socket = io.connect("http://localhost:3000/");

    socket.on('connect', function() {
        console.log('connected');
    });

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

    socket.on("data", function(data) {
        console.log(data);
    });
</script>
</body>

而已。 现在,使用node server.js启动服务器,然后在浏览器中打开client.html并检查控制台。 让我知道,如果有任何不清楚的地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM