网络组件修复上下线提示的BUG,服务端上下线事件重写。

This commit is contained in:
dathlin
2017-06-16 17:20:52 +08:00
parent c3e558114f
commit ed8dc29129
3 changed files with 24 additions and 11 deletions

Binary file not shown.

View File

@@ -1666,15 +1666,10 @@
一个计算上线下线的高性能缓存对象
</summary>
</member>
<member name="P:HslCommunication.Enthernet.Net_Socket_Server.AllClients">
<member name="P:HslCommunication.Enthernet.Net_Socket_Server.IsSaveLogClientLineChange">
<summary>
计算所有客户端在线的信息
</summary>
<summary>
所有客户端的在线信息,使用#符号分隔开来
</summary>
</member>
<member name="P:HslCommunication.Enthernet.Net_Socket_Server.IsSaveLogClientLineChange">
<summary>
获取或设置服务器是否记录客户端上下线信息
</summary>
@@ -1710,6 +1705,11 @@
服务器的异常,启动,等等一般消息产生的时候,出发此事件
</summary>
</member>
<member name="E:HslCommunication.Enthernet.Net_Socket_Server.AllClientsStatusChange">
<summary>
客户端的上下限状态变更时触发,仅作为在线客户端识别
</summary>
</member>
<member name="E:HslCommunication.Enthernet.Net_Socket_Server.ClientOnline">
<summary>
当客户端上线的时候,触发此事件

View File

@@ -577,6 +577,7 @@ namespace 软件系统服务端模版
net_socket_server.IsSaveLogClientLineChange = true;//设置客户端上下线是否记录到日志
net_socket_server.ClientOnline += new HslCommunication.NetBase.IEDelegate<AsyncStateOne>(Net_socket_server_ClientOnline);//客户端上线触发
net_socket_server.ClientOffline += new HslCommunication.NetBase.IEDelegate<AsyncStateOne, string>(Net_socket_server_ClientOffline);//客户端下线触发,包括异常掉线
net_socket_server.AllClientsStatusChange += new HslCommunication.NetBase.IEDelegate<string>(Net_socket_server_AllClientsStatusChange);//客户端上下线变化时触发
net_socket_server.MessageAlerts += new HslCommunication.NetBase.IEDelegate<string>(Net_socket_server_MessageAlerts);//服务器产生提示消息触发
net_socket_server.AcceptByte += new HslCommunication.NetBase.IEDelegate<AsyncStateOne, int, byte[]>(Net_socket_server_AcceptByte);//服务器接收到字节数据触发
net_socket_server.AcceptString += new HslCommunication.NetBase.IEDelegate<AsyncStateOne, int, string>(Net_socket_server_AcceptString);//服务器接收到字符串数据触发
@@ -588,6 +589,7 @@ namespace 软件系统服务端模版
}
}
/******************************************************************************************************************
@@ -658,11 +660,8 @@ namespace 软件系统服务端模版
{ "Time", new JValue(DateTime.Now) },
{ "FileCount", new JValue(net_simple_file_server.File_Count()) }
};
//发送客户端的初始化数据
net_socket_server.Send(object1, CommonHeadCode.MultiNetHeadCode., json.ToString());
//此处决定要不要将在线客户端的数据发送所有客户端
net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.线, net_socket_server.AllClients);
//触发上下线功能
Net_socket_clients_change(DateTime.Now.ToString("MM-dd HH:mm:ss ") + object1._IpEnd_Point.Address.ToString() + "" +
object1.LoginAlias + " 上线");
@@ -676,12 +675,26 @@ namespace 软件系统服务端模版
BeginInvoke(new Action(() =>
{
textBox1.AppendText(str + Environment.NewLine);
listBox1.DataSource = net_socket_server.AllClients.Split('#');
}));
}
}
private void Net_socket_server_AllClientsStatusChange(string data)
{
//此处决定要不要将在线客户端的数据发送所有客户端
net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.线, data);
if (IsWindowShow && IsHandleCreated)
{
BeginInvoke(new Action(() =>
{
listBox1.DataSource = data.Split('#');
label4.Text = net_socket_server.ClientCount.ToString();
}));
}
}
#endregion
#region 线