簡體   English   中英

Node.js 多個應用程序

[英]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服務器
  • 將 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 建議的官方文檔。

socket.io-Using-with-Express

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM