Как запустить узел и сервер django одновременно

#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. Да, в зависимости от хостинга, который вы используете.