|
|
@@ -12,6 +12,8 @@ CClientSession::~CClientSession()
|
|
|
|
|
|
void CClientSession::start()
|
|
|
{
|
|
|
+ m_pos_message.clear();
|
|
|
+
|
|
|
boost::asio::async_read(socket_, boost::asio::buffer(&m_pos_message, sizeof(PosMessage)),
|
|
|
boost::bind(&CClientSession::handle_read, this,
|
|
|
boost::asio::placeholders::error,
|
|
|
@@ -90,7 +92,24 @@ void CClientSession::handle_read(const boost::system::error_code& error,
|
|
|
document.Parse(msg.c_str());
|
|
|
if(!document.IsObject())
|
|
|
{
|
|
|
- LOG_INFO("message 非法!");
|
|
|
+ LOG_ERROR("message 非法! msg:" << msg.c_str());
|
|
|
+ LOG_ERROR("msg length:" << m_pos_message.m_length);
|
|
|
+ LOG_ERROR("ip:" << socket_.remote_endpoint().address().to_string());
|
|
|
+
|
|
|
+ //处理完了,重新读取
|
|
|
+ m_pos_message.clear();
|
|
|
+
|
|
|
+ boost::asio::async_read(socket_, boost::asio::buffer(&m_pos_message, sizeof(PosMessage)),
|
|
|
+ boost::bind(&CClientSession::handle_read, this,
|
|
|
+ boost::asio::placeholders::error,
|
|
|
+ boost::asio::placeholders::bytes_transferred));
|
|
|
+
|
|
|
+/*
|
|
|
+ socket_.async_read_some(boost::asio::buffer(&m_pos_message, sizeof(PosMessage)),
|
|
|
+ boost::bind(&CClientSession::handle_read, this,
|
|
|
+ boost::asio::placeholders::error,
|
|
|
+ boost::asio::placeholders::bytes_transferred));*/
|
|
|
+
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -103,7 +122,7 @@ void CClientSession::handle_read(const boost::system::error_code& error,
|
|
|
|
|
|
if (is_login == "1")
|
|
|
{
|
|
|
- LOG_INFO("get client login message:" << msg.c_str());
|
|
|
+ //LOG_INFO("get client login message:" << msg.c_str());
|
|
|
|
|
|
//获取到用户名了,进行绑定
|
|
|
m_server->BindUsername(username, this);
|
|
|
@@ -113,14 +132,23 @@ void CClientSession::handle_read(const boost::system::error_code& error,
|
|
|
}
|
|
|
|
|
|
//处理完了,重新读取
|
|
|
+ m_pos_message.clear();
|
|
|
+
|
|
|
+ boost::asio::async_read(socket_, boost::asio::buffer(&m_pos_message, sizeof(PosMessage)),
|
|
|
+ boost::bind(&CClientSession::handle_read, this,
|
|
|
+ boost::asio::placeholders::error,
|
|
|
+ boost::asio::placeholders::bytes_transferred));
|
|
|
+
|
|
|
+/*
|
|
|
socket_.async_read_some(boost::asio::buffer(&m_pos_message, sizeof(PosMessage)),
|
|
|
boost::bind(&CClientSession::handle_read, this,
|
|
|
boost::asio::placeholders::error,
|
|
|
- boost::asio::placeholders::bytes_transferred));
|
|
|
+ boost::asio::placeholders::bytes_transferred));*/
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
std::string err = error.message();
|
|
|
+ //LOG_ERROR("handle_read error, err message:" << err.c_str());
|
|
|
|
|
|
if (socket_.is_open())
|
|
|
{
|
|
|
@@ -140,6 +168,7 @@ void CClientSession::handle_read(const boost::system::error_code& error,
|
|
|
else
|
|
|
{
|
|
|
//这个是服务端断开了链接
|
|
|
+ //LOG_ERROR("服务端断开了链接");
|
|
|
delete this;
|
|
|
}
|
|
|
}
|