Express-ws package does not allow clients to connect

I have an express router defined for express-ws npm package. The router looks like:

//ws.js
var express = require('express');
var router = express.Router();

var connections = {};
router.ws('/connect/', function (ws, req) {
    // console.log(ws);
    ws.on('close', function(x, y, z) {
        console.log(a, b, c);
    });
});

module.exports = router;

(not all) operators in the express application (and in order):

//app.js
var app = express();
var expressWs = require('express-ws')(app);

var index = require('./routes/index');
var ws = require('./routes/ws');

...
...

app.use('/ws', ws);
app.use('/*', index);

The server has statements such as:

//bin/www - Generated by express generator

var app = require('../app');
var debug = require('debug')('server:server');
var http = require('http');

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

var server = http.createServer(app);
server.listen(port);

After starting, I can’t connect to the route /wsthrough the web socket. Am I missing something here? Is there a better way to create a web socket running Express 4?

This is the error that I see on the client! What am I doing wrong?

enter image description here

+7
source share
2 answers

changes to app.js

var app = express();
var server = require('http').Server(app);
var expressWs = require('express-ws')(app,server);
...
...
//module.exports = app;
module.exports = {app: app,server: server};

changes to bin / www

//var app = require('../app');
var app = require('../app').app;
...
...
//var server = http.createServer(app);
var server = require('../app').server;
+6
source

I know this is old, but here is the problem. No HTTP server required.

//app.js
const express = require('express');
const { app } = require('express-ws')(express());

const index = require('./routes/index');
const ws = require('./routes/ws');

...

app.use('/ws', ws);
app.use('/*', index);

...

app.listen(8080, () => console.log('Listening on port: 8080');
0
source

Source: https://habr.com/ru/post/1659527/


All Articles