[英]Node.js multiple apps
我有一個運行 Apache + PHP 的平台,我通過子域分發給幾個人,例如:platform.subdomain1.com、platform.subdomain2.com 等。 我希望這個平台的功能之一是視頻流,我選擇使用 Node.js + socket.io 來做到這一點。 我沒有太多的 Node 經驗,但我設法讓流媒體本身工作。 我基本上有一個名為流的目錄,其中包含 app.js、index.html 和兩個 html 文件:一個用於流式傳輸視頻,另一個用於查看。
我的問題:我想合並兩者,以便我可以鏈接到這些流媒體和查看頁面,以便每個用戶及其子域都有自己的流媒體。 我想知道是否有任何方法可以做到這一點以及它會是什么。
我可以在每個子域中創建一個包含所有節點流文件的目錄,並為每個子域創建一個新實例,如下所示:
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
服務器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);
});
});
快遞優勢:
如果 AWS 負載均衡器運行狀況檢查或任何基於目標運行狀況路由請求的平台,您將支持 ping/pong 或運行狀況檢查,因為 socket.io 不支持 AWS ALB 中的運行狀況檢查。
您查看 socket.io 建議的官方文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.