【发布时间】:2017-08-18 22:43:22
【问题描述】:
我在 heroku 上有一个 WebSocket 应用程序。我尝试在不路由 http 服务器的情况下上传我的 WebSocket 应用程序,但它不起作用。 服务器路由是什么意思?为什么 heroku 不能在没有 http 服务器的情况下运行 WebSocket 服务器? 以及为什么在 SocketServer 中使用 express object 'server' 作为参数 这是我的 Websocket 服务器代码。
const express = require('express');
const SocketServer = require('ws').Server;
const path = require('path');
const PORT = process.env.PORT || 3000;
const INDEX = path.join(__dirname, 'index.html');
const server = express()
.use((req, res) => res.sendFile(INDEX) )
.listen(PORT, () => console.log(`Listening on ${ PORT }`));
const wss = new SocketServer({ server });
wss.on("connection",function(ws){
ws.on("message",function(message){
if(message==='exit'){
ws.close();
}else{
wss.clients.forEach(function(client){
client.send(message);
});
console.log(message);
}
});
ws.send("welcome..");
});
【问题讨论】:
-
Websockels 是通过 HTTP 设置的。没有它们你就不能使用它们。
-
是的,但实际上在 SocketServer 中传递 express 对象时后端会发生什么
-
并且在 localhost 中它可以在没有路由 http 服务器的情况下正常工作。
-
@mehul 我的回答没有帮助吗?如果是,请为它投票。
-
是的,我那天只试过,但它说“感谢您的反馈!声望低于 15 人的投票将被记录,但不要更改公开显示的帖子分数”
标签: javascript node.js heroku