void Server::OnMessage(ConnectionHandle connection, MessagePtr data) { Urho3D::MutexLock lock(mutexEvents_); ConnectionPtr connectionPtr = server_->get_con_from_hdl(connection); if (data->get_opcode() == websocketpp::frame::opcode::TEXT) { String textMsg(data->get_payload().c_str()); LogInfo("[WebSocketServer]: on_utf8_message: size=" + String(textMsg.Length()) + " msg=" + textMsg); } else if (data->get_opcode() == websocketpp::frame::opcode::BINARY) { const std::string &payload = data->get_payload(); if (payload.size() == 0) { LogError("[WebSocketServer]: Received 0 sized payload, ignoring"); return; } SocketEvent *event = new SocketEvent(connectionPtr, SocketEvent::Data); event->data = DataSerializerPtr(new kNet::DataSerializer(payload.size())); event->data->AddAlignedByteArray(&payload[0], payload.size()); events_.Push(event); } }