Задать вопрос
Ответы пользователя по тегу Node.js
  • Как реализовать добавление товара в корзину незарегистр пользователем на node js?

    grantur5707
    @grantur5707
    Full Stack Web Developer
    Используйте библиотеку express-session:

    const express = require('express');
    const session = require('express-session');
    const app = express();
    
    app.use(session({
        secret: 'your_secret_key',
        resave: false,
        saveUninitialized: true,
        cookie: { secure: true }
    }));


    https://nodejsdev.ru/guides/webdraftt/sessions/
    Ответ написан
    1 комментарий
  • Как отправить длинное SMS с помощью SMPP?

    grantur5707
    @grantur5707
    Full Stack Web Developer
    Для отправки длинных SMS необходимо вручную разбить сообщение на части и указать, что эти части составляют одно целое сообщение. Для этого нужно использовать механизм сегментирования сообщений, который реализуется через UDH (User Data Header).

    Пример реализации такого скрипта согласно стандарту GSM:

    const smpp = require('smpp');
    const session = smpp.connect('smpp://your-smpp-server');
    
    function splitMessage(message) {
      const messageParts = [];
      const partSize = 153;
      for (let i = 0; i < message.length; i += partSize) {
        messageParts.push(message.substring(i, i + partSize));
      }
      return messageParts;
    }
    
    function sendLongSms(session, destination, source, message) {
      const parts = splitMessage(message);
      const refNumber = Math.floor(Math.random() * 255);
      const totalParts = parts.length;
      
      parts.forEach((part, index) => {
        const udh = Buffer.from([
          0x05, // UDH length
          0x00, // IEI (Information Element Identifier)
          0x03, // Length of header
          refNumber, // Reference number (randomized)
          totalParts, // Total number of parts
          index + 1, // Current part number
        ]);
    
        const shortMessage = Buffer.concat([udh, Buffer.from(part, 'utf-8')]);
    
        session.submit_sm({
          destination_addr: destination,
          source_addr: source,
          short_message: shortMessage,
          data_coding: 0,
        }, (pdu) => {
          if (pdu.command_status === 0) {
            console.log('Message sent successfully.');
          } else {
            console.error('Message failed with status:', pdu.command_status);
          }
        });
      });
    }
    
    session.bind_transceiver({
      system_id: 'your_system_id',
      password: 'your_password',
    }, (pdu) => {
      if (pdu.command_status === 0) {
        console.log('Connected');
    
        const longMessage = 'Your very long message goes here...';
        sendLongSms(session, 'destination_number', 'source_number', longMessage);
      } else {
        console.error('Failed to connect:', pdu.command_status);
      }
    });
    Ответ написан
    4 комментария