Загрузка...

Help to deal with websocket 1000r

Thread in Node.js created by lubiatnas Oct 4, 2022. 290 views

  1. lubiatnas
    lubiatnas Topic starter Oct 4, 2022 4 Aug 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

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