gpt4 book ai didi

javascript - Node.js 多应用

转载 作者:搜寻专家 更新时间:2023-11-01 00:47:27 27 4
gpt4 key购买 nike

我有一个运行 Apache + PHP 的平台,我通过子域分发给几个人,例如:platform.subdomain1.com、platform.subdomain2.com 等。.我希望这个平台的功能之一是视频流,我选择使用 Node.js + socket.io 来实现。我没有太多 Node 经验,但我设法让流媒体本身工作。我基本上有一个名为 stream 的目录,其中包含 app.js、index.html 和两个 html 文件:一个用于流式传输视频,一个用于查看。

我的问题:我想合并这两者,这样我就可以链接到这些流媒体和查看页面,这样每个拥有子域的用户都有自己的流媒体。我想知道是否有任何方法可以做到这一点,它会是什么。

我可以在每个子域中创建一个包含所有 Node 流文件的目录,并为每个子域创建一个新实例,如下所示:

var app = new express();
const http = require("http").Server(app)
http.listen('platform.subdomain1.com',3000);

这样我就可以将我的平台链接到地址:platform.subdomain1.com/stream:3000

但我不确定这样做是否正确,或者是否有其他方法可以做到。如果有人能帮助我,非常感谢!

我的 App.js

var express = require("express");
var app = new express();
const http = require("http").Server(app)
var io = require("socket.io")(http);
app.use(express.static(__dirname + "/public"));
app.get('/', function(req,res){
res.redirect('index.html');
});

io.on('connection', function(socket){
socket.on('stream', function(image){
socket.broadcast.emit('stream', image);
});
});

http.listen(3000);

最佳答案

是的,这是与 socket.io 一起工作和表达的正确方式

  • 创建express 服务器
  • 将 Express 服务器绑定(bind)到 socket.io
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

server.listen(80);
// WARNING: app.listen(80) will NOT work here!

app.get('/ping', function (req, res) {
res.send("pong")
});
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});

io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});

express 的优势:

在 AWS 负载均衡器健康检查或任何基于目标健康状况路由请求的平台的情况下,您将支持 ping/pong 或健康检查,因为 socket.io 不支持 AWS 中的健康检查ALB.

你检查official socket.io 建议的文档。

socket.io-Using-with-Express

关于javascript - Node.js 多应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57797234/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com