C++ Вопрос Мульти поток на websocket сервере

Ушастый
Забаненный
Статус
Оффлайн
Регистрация
23 Ноя 2021
Сообщения
371
Реакции[?]
56
Поинты[?]
10K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как реализовать мульти поток на websocket сервере?
Кому не сложно киньте сурс
 
Пользователь
Статус
Оффлайн
Регистрация
28 Фев 2021
Сообщения
591
Реакции[?]
118
Поинты[?]
0
Научитесь уже пользоваться chatGPT и vpn если не заходит O_o

chatGPT nasral:
#include <iostream>
#include <thread>
#include <boost/asio.hpp>
#include <boost/thread.hpp>
#include <boost/bind.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/array.hpp>
#include <boost/algorithm/string.hpp>
#include <websocketpp/config/asio_no_tls.hpp>
#include <websocketpp/server.hpp>

using websocketpp::server;

class WebSocketServer {
public:
    WebSocketServer()
        : server_()
    {
        server_.set_message_handler(bind(&WebSocketServer::on_message, this, ::_1, ::_2));
    }

    void run(uint16_t port) {
        server_.init_asio();

        // Set up the thread pool.
        boost::thread_group threads;
        for (std::size_t i = 0; i < boost::thread::hardware_concurrency(); ++i) {
            threads.create_thread(bind(&asio::io_service::run, &server_.get_io_service()));
        }

        // Start the server.
        server_.listen(port);
        server_.start_accept();

        std::cout << "WebSocket server listening on port " << port << "." << std::endl;

        // Wait for all threads in the pool to exit.
        threads.join_all();
    }

    void on_message(websocketpp::connection_hdl hdl, server::message_ptr msg) {
        server_.send(hdl, msg->get_payload(), msg->get_opcode());
    }

private:
    server server_;
};

int main(int argc, char* argv[]) {
    if (argc < 2) {
        std::cerr << "Usage: " << argv[0] << " <port>" << std::endl;
        return 1;
    }

    uint16_t port = std::atoi(argv[1]);

    try {
        WebSocketServer server;
        server.run(port);
    } catch (std::exception& e) {
        std::cerr << "Exception: " << e.what() << std::endl;
    }

    return 0;
}
 
Ушастый
Забаненный
Статус
Оффлайн
Регистрация
23 Ноя 2021
Сообщения
371
Реакции[?]
56
Поинты[?]
10K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Научитесь уже пользоваться chatGPT и vpn если не заходит O_o

chatGPT nasral:
#include <iostream>
#include <thread>
#include <boost/asio.hpp>
#include <boost/thread.hpp>
#include <boost/bind.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/array.hpp>
#include <boost/algorithm/string.hpp>
#include <websocketpp/config/asio_no_tls.hpp>
#include <websocketpp/server.hpp>

using websocketpp::server;

class WebSocketServer {
public:
    WebSocketServer()
        : server_()
    {
        server_.set_message_handler(bind(&WebSocketServer::on_message, this, ::_1, ::_2));
    }

    void run(uint16_t port) {
        server_.init_asio();

        // Set up the thread pool.
        boost::thread_group threads;
        for (std::size_t i = 0; i < boost::thread::hardware_concurrency(); ++i) {
            threads.create_thread(bind(&asio::io_service::run, &server_.get_io_service()));
        }

        // Start the server.
        server_.listen(port);
        server_.start_accept();

        std::cout << "WebSocket server listening on port " << port << "." << std::endl;

        // Wait for all threads in the pool to exit.
        threads.join_all();
    }

    void on_message(websocketpp::connection_hdl hdl, server::message_ptr msg) {
        server_.send(hdl, msg->get_payload(), msg->get_opcode());
    }

private:
    server server_;
};

int main(int argc, char* argv[]) {
    if (argc < 2) {
        std::cerr << "Usage: " << argv[0] << " <port>" << std::endl;
        return 1;
    }

    uint16_t port = std::atoi(argv[1]);

    try {
        WebSocketServer server;
        server.run(port);
    } catch (std::exception& e) {
        std::cerr << "Exception: " << e.what() << std::endl;
    }

    return 0;
}
Он типо не фулл не ворк код кидает
 
Сверху Снизу