Exemple #1
0
void server::join(const session_ptr& _user, user_id_type& uid)
{
	if (closing)
		return;
	std::lock_guard<std::mutex> lock(session_mutex);
	user_id_type newID = nextID;
	nextID++;
	sessions.emplace(newID, _user);
	uid = newID;

	misc_iosrv.post([this, newID, _user]() {
		try { on_join(newID, _user->get_key()); }
		catch (std::exception &ex) { on_exception(ex); }
		catch (...) {}
	});
}