Загрузка...

Помогите разобраться с websocket 1000р

Тема в разделе Node.js создана пользователем lubiatnas 4 окт 2022. 291 просмотр

  1. lubiatnas
    lubiatnas Автор темы 4 окт 2022 4 7 авг 2022
    Нужно будет помочь мне подружить сервер nodejs и client
    на локалхосте все работает)
    TG: @daniilaol


    UPD говорят тут помогают людям
    server.js принимает с клиента эвенты обрабатывает их отравляет клиенту изображение. так же в серверной части имеется запрос к внешнему ресурсу это важный момент заостряю внимание
    JavaScript
    const WebSocketServer = require('websocket').server;

    const server = http.createServer();
    server.listen(8080);

    const wsServer = new WebSocketServer({
    httpServer: server
    });

    let page = null;
    let connection = null;

    wsServer.on('request', function (request) {

    client.js ловит эвенты от пользователя и отправляет их серверу через websocket получает изображение
    JavaScript


    const img = document.querySelector('img');

    const ws = new WebSocket("ws://localhost:8000");

    ws.onopen = function () {
    ws.send(JSON.stringify({
    кусок package.json (я почитал как деплоить на хероку)))0)
    JavaScript
      "scripts": {
    "start": "node server.js"
    локально у меня все работает запускаю ноду npm start, открываю в браузере client.html и все четенько. а вот на хероку хер, вот кусок кода который предложил чел который пытался мне помочь, в этом в варианте локально мне не нужно открывать файл client.html а прост в браузере прописать localhost:8000 и все работает


    JavaScript
    server = http.createServer((req, response) => {
    if(req.url === '/')
    fs.readFile(path.resolve(process.cwd(), 'client.html'), function(error, content) {
    if (error) {
    response.writeHead(500);
    response.end('Sorry, check with the site admin for error: '+error.code+' ..\n');
    response.end();
    } else {
    response.statusCode = 200;
    response.writeHead(200, { 'Content-Type': 'text/html' });
    response.end(content, 'utf-8');
    }
    });
    })

    server.listen(process.env.PORT || 8000)

    const wsServer = new WebSocketServer({
    httpServer: server
    });
    предположительно проблема с роутингом внешнего запроса на хероку, там какие то трудности https/wss

    хероку не обязательная опция можно все сделать на ВПС даже предпочтительнее но я выбрал хероку по тому что посчитал что так будет проще всего
     
    4 окт 2022 Изменено
  2. Akavi
    пиши сюда, тебе на халяву готовы блять помочь, раздел для этого создан
     
  3. TatarinYa
    TatarinYa 4 окт 2022 18 26 фев 2020
    Согласен с предыдущим, тут подружат
     
  4. lubiatnas
    lubiatnas Автор темы 5 окт 2022 4 7 авг 2022
    еще актуально так никто и не помог
     
    1. TatarinYa
  5. kom1ssar666
    Удаляешь все к черту, ставишь NestJs, ставишь либу нест-сокет, скачиваешь яндекс-браузер врубаешь любое англо-язычное видео, врубаешь переводчик и пишешь на нормально фреймворке
     
    1. Безысходность
      kom1ssar666, зачем искать лёгкие варианты. Когда можно захардкодить :D
    2. kom1ssar666
      Безысходность, это не хардкодинг. А ужасный нечитабельный код, в котором он сам наверное путается. Ну ладно, тут строчек 50 кода, но в любом случае, лучше учиться правильно структурировать свой проект и делать его модульным и поддерживаемым. А Нест диктует жесткие правила, там быдло кодить попросту не получится. Плюс там ts, a не отвратительный js на котором вообще писать не стоит)
  6. pinilopa
    pinilopa 8 ноя 2022 Заблокирован(а) 69 17 апр 2021
     
Загрузка...
Top