Решение.local для IP-адреса и порта (MDN)
Я использую multicast-dns
модуль узла, чтобы попытаться сделать эту работу.
Глядя вверх custom.local
в браузере выдает мне консольное сообщение, которое я настроил, но я не могу видеть, как работает мой реальный сервер (который делает это в localhost:12345
, где 12345
это динамическое число). Я хочу видеть мой локальный сервер при посещении custom.local
, Это возможно?
Вот некоторый код:
mdns.on("query", query => {
if (query.questions[0] && query.questions[0].name === "custom.local") {
console.log(query);
mdns.respond({
answers: [
{
name: "custom.local",
type: "SRV",
data: {
port: n.get("p"), // dynamic port
weight: 0,
priority: 10,
target: ip // local IP
}
}, {
name: "custom.local",
type: "A",
data: ip,
ttl: 300
}
]
});
}
});
РЕДАКТИРОВАТЬ: я могу подключиться к своему локальному серверу просто отлично, это не было проблемой.
1 ответ
Цитирование Cfreak:
Вы не можете поместить номера портов в DNS. DNS предназначен только для поиска IP по имени. Чтобы ваш браузер мог видеть его только по имени, вам нужна прокси-программа перед вашим сервисом или вы должны запустить сам сервис на порте 80. Номера портов действительно не должны быть динамическими. Вы должны указать это в настройках вашего сервиса.
Это отвечает на мой вопрос и предлагает следующие шаги. Спасибо!
ОБНОВЛЕНИЕ: понял, что я пытался сделать. Вот немного кода!
НАЙТИ РЕШЕНИЕ, WOOP WOOP!
Я использую этот модуль, но немного подправил исходный код (только потому, что у меня динамические порты, потому что мне так хочется).
/* jshint undef: true, unused: true, esversion: 6, node: true */
"use strict";
//
// G E T
// P A C K A G E S
import express from "express";
import http from "http";
import local from "./server/local";
const n = express();
n.get("/", (req, res) => {
res.send("Welcome home");
});
//
// L A U N C H
const server = http.createServer(n);
server.listen(0, () => {
const port = server.address().port;
local.add(port, "custom.local");
});
Надеюсь, это поможет и вам, будущий искатель интернета!:D Не позволяйте негативным людям на других сайтах SE вас обидеть. Виртуальный кулак