套接字连接未建立到节点服务器

时间:2020-09-08 07:31:55

标签: node.js express websocket socket.io

我正在使用nodejs并表达socket.io,试图建立连接,但未调用io.on()方法。

请在下面查看我的代码。

var express = require('express');
var app = express();
var http = require('http');
var server = http.createServer(app);
server.listen(process.env.PORT || '3000', function () {
console.log('server listens on port 3000');
});
var io = require('socket.io')(http);
io.listen(server);

io.on('connection', function(socket) {
console.log('Client connected!');
socket.on('message', function (data) {
    console.log('Sending update!');
    socket.emit('update', 'Working!');
});
});

2 个答案:

答案 0 :(得分:0)

使用var io = require('socket.io')(server); 而不是var io = require('socket.io')(http);

更新的代码

var express = require("express");
var app = express();
var http = require("http");
var server = http.createServer(app);

var io = require("socket.io")(server);


io.on("connection", function (socket) {
  console.log("Client connected!");
  socket.on("message", function (data) {
    console.log("Sending update!");
    socket.emit("update", "Working!");
  });
});

server.listen(process.env.PORT || "3000", function () {
  console.log("server listens on port 3000");
});

以下是测试套接字io连接的代码

var socket = require("socket.io-client")("http://localhost:3000");
socket.on("connect", function () {});

socket.emit("message", function (data) {});

socket.on("update", function (data) {
  console.log(data);
});



答案 1 :(得分:0)

尝试一下

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

app.get('/', function(req, res) {
    res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket) {
    socket.on('event', function(data) {
        console.log('A client sent us this dumb message:', data.message);
    });
});
server.listen(8080);

前端

<script src="/socket.io/socket.io.js"></script>
<script>
    var socket = io.connect('/');
    socket.emit('event', { message: 'Hey, I have an important message!' });
</script>
相关问题