- 4,780
- 5,416
Привет. Уже пару дней не могу разгадать загадку.
Имеется:
Это инициализация и подключение websocket`a
Это дисконнект, привязан к деструктору (registerGameDestructorCallback). Всё круто срабатывает - сервер получает что игрок отключился при выгрузке плагина / выходе из игры.
Но вот текущие проблемы:
1. Нельзя загрузить плагин отложено (закинуть файл в sampfuncs и pload его). Краш.
2. Нельзя перезагрузить уже загруженный плагин. preload выгружает плагин, сервер получает диконнект, но загрузить плагин обратно не представляется возможным.
Хотел бы получить консультацию по этим вопросам.
Сам WS: https://github.com/zaphoyd/websocketpp
Имеется:
C++:
void ws_point::init()
{
try {
m_endpoint.clear_access_channels(websocketpp::log::alevel::all);
m_endpoint.clear_error_channels(websocketpp::log::elevel::all);
m_endpoint.init_asio();
m_endpoint.start_perpetual();
m_thread = websocketpp::lib::make_shared<websocketpp::lib::thread>(&client::run, &m_endpoint);
connect(wsuri);
}
catch (websocketpp::exception const& e) {
SF->Log(e.what());
}
}
void ws_point::connect(std::string& uri) {
websocketpp::lib::error_code ec;
client::connection_ptr con = m_endpoint.get_connection(uri, ec);
if (ec) {
return;
}
ghdl = con->get_handle();
con->set_message_handler(bind(&type::on_message, this, ::_1, ::_2));
con->set_open_handler(bind(&type::on_open, this, ::_1));
con->set_close_handler(bind(&type::on_close, this, ::_1));
con->set_fail_handler(bind(&type::on_fail, this, ::_1));
m_endpoint.connect(con);
connected = true;
}
C++:
void ws_point::disconnect()
{
if (!connected)
return;
m_endpoint.stop_perpetual();
websocketpp::lib::error_code ec;
m_endpoint.close(ghdl, websocketpp::close::status::going_away, "", ec);
if (ec) {
return;
}
m_endpoint.stop();
m_thread->detach();
}
Но вот текущие проблемы:
1. Нельзя загрузить плагин отложено (закинуть файл в sampfuncs и pload его). Краш.
2. Нельзя перезагрузить уже загруженный плагин. preload выгружает плагин, сервер получает диконнект, но загрузить плагин обратно не представляется возможным.
Хотел бы получить консультацию по этим вопросам.
Сам WS: https://github.com/zaphoyd/websocketpp