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

  • Автор темы Автор темы SandF0xy
  • Дата начала Дата начала
Ушастый
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
23 Ноя 2021
Сообщения
373
Реакции
56
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как реализовать мульти поток на websocket сервере?
Кому не сложно киньте сурс
 
Научитесь уже пользоваться chatGPT и vpn если не заходит O_o

chatGPT nasral:
Expand Collapse Copy
#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;
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Научитесь уже пользоваться chatGPT и vpn если не заходит O_o

chatGPT nasral:
Expand Collapse Copy
#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;
}
Он типо не фулл не ворк код кидает
 
Назад
Сверху Снизу