Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.04.2025, 20:09
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 785

Не могу соедениться с сервером
Всем привет. На вебсервере(nginx) крутится сайт. На http. Решил сделать чат, типа поддержки. Нарисовал форму,установил nodejs на сервер. В конфиге (nginx) сайта прописал proxy.
location /chat/ {
 
               proxy_pass http://site.ru:3000;
               proxy_set_header Host $host;
 
}

server.js
const http = require('http');
const WebSocket = require('ws');

const wss = new WebSocket.Server({port:3000 });
wss.on('connection',  function connection(ws) {

  ws.on('message', function incoming(message) {
    console.log('Получено сообщение: %s', message);
});

});


client.js

var ws = new WebSocket('ws://site.ru:3000');

или
var ws = new WebSocket('ws://site.ru/chat/');


Нет соединения. Порт открыт. Если просто запускать node server, работает. Нужный порт слушает.

Целый день провозился(.
Ответить с цитированием
  #2 (permalink)  
Старый 22.04.2025, 21:07
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,813

В настройках nginx разве есть смысл указывать доменное имя, если его A-запись все равно указывает на этот же сервер?
Это же бессмысленное обращение к DNS, там можно просто `localhost:3000` или `127.0.0.1:3000` указать.

Сообщение от ureech
Если просто запускать node server, работает.
Просто запуска nginx недостаточно, нужно чтобы и nodejs также отрабатывал ваш скрипт, иначе получиться, что nginx перебрасывает запрос, а принять его некому. В этом случае, вроде как, должна падать 502 ошибка - bad gateway.
Ответить с цитированием
  #3 (permalink)  
Старый 22.04.2025, 21:19
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,595

https://nginx.org/en/docs/http/websocket.html

Ну и
proxy_pass htt*!**/!*p://localhost:3000
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 23.04.2025, 12:29
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 785

Да нет,это не влияет. Перенёс чат на другой сайт с https. та же хрень.
Этот код
var https = require('node:https');
var fs = require('node:fs');
const options = {
key:fs.readFileSync('./key.pem'),
cert:fs.readFileSync('./cert.pem')
}

https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('hello world\n');
}).listen(3000);


работает. То есть я открываю страницу https://site.ru/chat и вижу hello world

Но код с websocket ни в какую

const HttpsServer = require('node:https').createServer;
var fs = require('node:fs');
const WebSocket = require('ws').Server;

const options = {
key:fs.readFileSync('./key.pem'),
cert:fs.readFileSync('./cert.pem')
}
const server = HttpsServer({options});
const socket = new WebSocket({
    server: server
});

socket.on('connection', (ws) => {
  ws.on('message', (message) => {
    console.log(`Received: ${message}`);
  });
  ws.send('Secure connection established!');
});

server.listen(3000);


В nginx вносил правки. Всё равно(

Последний раз редактировалось ureech, 23.04.2025 в 12:36.
Ответить с цитированием
  #5 (permalink)  
Старый 23.04.2025, 21:23
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 785

Разобрался. Нужно было на отдельном поддомене запустить node сервер и потом уже с сайта подключаться к нему.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки отсутствия сзязи с сервером Artur_Hopf Общие вопросы Javascript 10 20.04.2018 12:24
Не могу выучить javascript. usertest Оффтопик 17 20.03.2016 08:33
не могу связать ссылку HTML Шынгыс (X)HTML/CSS 1 14.07.2014 13:52
Соединение с сервером ermolinolga Серверные языки и технологии 2 22.01.2013 17:54
загрузка файла через скрытый iframe и потеря связи с сервером vahrusha AJAX и COMET 5 01.06.2011 14:43