#python #node.js #django #web-development-server
Вопрос:
Я создаю приложение для видеочата, в котором буду использовать веб-сокеты из npm, и я написал код, связанный с WebSocket, в server.js файл, подобный этому
var webSocketServ = require('ws').Server;
var wss = new webSocketServ({
port: 8000
})
var users = {};
var otherUser;
wss.on('connection', function (conn) {
console.log("User connected");
conn.on('message', function (message) {
var data;
.
.
.
and so on
а для управления URL-адресами я использовал Django,
поэтому моя проблема заключается в том, что я использую python manage.py runserver, server.js не работает, и приложение не подключается к серверу, и если я запущу «узел server.js» приложение подключается к серверу, но я не могу управлять URL-адресом, как в коде Django
поэтому я открыл два экземпляра терминалов и запустил узел в одном терминале, а python в другом, но я знаю, что это неправильный способ, и он не будет эффективным при размещении
есть ли какой-нибудь способ запустить оба сервера одновременно?
Ответ №1:
Если вам нужно, чтобы два сервера работали на одном и том же порту, вам нужно будет настроить один для передачи определенных запросов другому. (Я бы рекомендовал иметь Node.js прокси-сервер все, что не относится к websocket, к Django, используя, например https://github.com/http-party/node-http-proxy).
Если вам не нужно, чтобы два сервера работали на одном и том же порту, просто измените их на использование разных портов, и в этом случае вы получите доступ к двум содержимым по разным URL-адресам. Вы можете изменить это port: 8000
в приложении Node или в Django runserver
, например runserver 127.0.0.1:8010
(или 0.0.0.0:8010
предоставить доступ к серверу разработчиков за пределами вашей собственной машины).
Комментарии:
1. Хорошо, спасибо за ваши предложения. Мне не нужен один и тот же порт для обоих серверов , поэтому я использую 2 разных порта в 2 разных терминалах, но во время хостинга могу ли я использовать 2 разных сервера ?
2. Да, в зависимости от хостинга, который вы используете.