Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
165
rated 0 times [  167] [ 2]  / answers: 1 / hits: 30198  / 10 Years ago, mon, july 28, 2014, 12:00:00

I'm trying to hook socket.io and express.js together:



var socket = require('./socket_chat/socket.js');

var express = require('express'),
app = module.exports.app = express();

var io = require('socket.io').listen(app);

app.use(express.static(__dirname + '/app'));

io.sockets.on('connection', socket);


At the line: var io = require('socket.io').listen(app); I'm getting an error:



Error: You are trying to attach socket.io to an expressrequest handler function. Please pass a http.Server instance.


There doesn't seem to be anything on SO/google about this error...


More From » node.js

 Answers
4

You can do it without using http module



app.listen return a server instance you can use for socket.io



const express = require('express');
const app = express();
const server = app.listen(port, () => {
console.log(Listening on port: + port);
});
const io = require('socket.io')(server);

[#70015] Friday, July 25, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jack

Total Points: 557
Total Questions: 96
Total Answers: 80

Location: Saint Helena
Member since Mon, Jan 16, 2023
1 Year ago
;