相关疑难解决方法(0)

如何在同一个端口上使用ExpressJS和Socket.io?

在ExpressJS的第三个版本中,express.createServer()更改为express(),这种更改使得很难在同一端口上绑定socket.io.也许有人可以找到有力的决定.

现在,这不起作用:

var express = require('express')
, app = express.createServer()
, io = require('socket.io').listen(app);
Run Code Online (Sandbox Code Playgroud)

我目前的工作流程:https://gist.github.com/3596852

javascript node.js express socket.io

23
推荐指数
1
解决办法
1万
查看次数

带有 express 和 websocket 的 Node.js 在 WebSocket 握手期间出错:意外响应代码:200

所以我试图建立一个网站,它也有 websockets,其中 http-server 和 websocket 都在同一个端口上侦听:

const WebSocket = require('ws');
var express = require('express');
var app = express();


wss = new WebSocket.Server({server : app});

app.get('/', function(req, res){

    res.send('hello world!');
});


wss.on('connection', function connection(ws) {
  ws.on('message', function incoming(message) {
    console.log('received: %s', message);
  });

  ws.send('some text');
});


app.listen(8080, function(){

    console.log('app started');
});
Run Code Online (Sandbox Code Playgroud)

如果我然后在 chrome 浏览器中加载服务器网站,我会收到“hello world!”的问候。到现在为止还挺好。但是如果我打开 webconsole 并尝试连接

var exampleSocket = new WebSocket("ws://192.10.10.30:8080");
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

与“ws://192.10.10.30:8080/”的 WebSocket 连接失败:WebSocket 握手期间出错:意外响应代码:200

我的第一个想法是,我必须明确声明一个 http-server 吗?

但是我在 Node.js 上阅读了这篇文章 Serve WebSocket and HTTP server at …

javascript websocket node.js express

3
推荐指数
1
解决办法
2541
查看次数

标签 统计

express ×2

javascript ×2

node.js ×2

socket.io ×1

websocket ×1