File tree Expand file tree Collapse file tree 4 files changed +16
-11
lines changed Expand file tree Collapse file tree 4 files changed +16
-11
lines changed Original file line number Diff line number Diff line change @@ -174,6 +174,7 @@ void installEvents()
174
174
Event . registerIn ( "createAccount" , this , "createAccount" ) ;
175
175
Event . registerIn ( "login" , this , "login" ) ;
176
176
Event . registerIn ( "relogin_baseapp" , this , "relogin_baseapp" ) ;
177
+ Event . registerIn ( "_closeNetwork" , this , "_closeNetwork" ) ;
177
178
}
178
179
179
180
public KBEngineArgs getInitArgs ( )
@@ -265,14 +266,14 @@ public static bool validEmail(string strEmail)
265
266
*/
266
267
public virtual void process ( )
267
268
{
269
+ // 处理网络
270
+ _networkInterface . process ( ) ;
271
+
268
272
// 处理外层抛入的事件
269
273
Event . processInEvents ( ) ;
270
274
271
275
// 向服务端发送心跳以及同步角色信息到服务端
272
276
sendTick ( ) ;
273
-
274
- // 处理网络
275
- _networkInterface . process ( ) ;
276
277
}
277
278
278
279
/*
@@ -287,6 +288,11 @@ public Entity player()
287
288
return null ;
288
289
}
289
290
291
+ public void _closeNetwork ( NetworkInterface networkInterface )
292
+ {
293
+ networkInterface . close ( ) ;
294
+ }
295
+
290
296
/*
291
297
向服务端发送心跳以及同步角色信息到服务端
292
298
*/
Original file line number Diff line number Diff line change @@ -188,9 +188,8 @@ public bool send(byte[] datas)
188
188
189
189
public void process ( )
190
190
{
191
- // 避免close后一些消息没有得到处理,将这里屏蔽
192
- // if(!valid())
193
- // return;
191
+ if ( ! valid ( ) )
192
+ return ;
194
193
195
194
if ( _packetReceiver != null )
196
195
_packetReceiver . process ( ) ;
Original file line number Diff line number Diff line change @@ -119,7 +119,7 @@ public void startRecv()
119
119
catch ( Exception e )
120
120
{
121
121
Dbg . ERROR_MSG ( "PacketReceiver::startRecv(): call ReceiveAsync() is err: " + e . ToString ( ) ) ;
122
- _networkInterface . close ( ) ;
122
+ Event . fireIn ( "_closeNetwork" , new object [ ] { _networkInterface } ) ;
123
123
}
124
124
}
125
125
@@ -151,7 +151,7 @@ private static void _onRecv(IAsyncResult ar)
151
151
if ( bytesRead == 0 )
152
152
{
153
153
Dbg . WARNING_MSG ( string . Format ( "PacketReceiver::_processRecved(): disconnect!" ) ) ;
154
- state . networkInterface ( ) . close ( ) ;
154
+ Event . fireIn ( "_closeNetwork" , new object [ ] { state . networkInterface ( ) } ) ;
155
155
return ;
156
156
}
157
157
else
@@ -163,7 +163,7 @@ private static void _onRecv(IAsyncResult ar)
163
163
catch ( Exception e )
164
164
{
165
165
Dbg . ERROR_MSG ( string . Format ( "PacketReceiver::_processRecved(): is error({0})!" , e . ToString ( ) ) ) ;
166
- state . networkInterface ( ) . close ( ) ;
166
+ Event . fireIn ( "_closeNetwork" , new object [ ] { state . networkInterface ( ) } ) ;
167
167
}
168
168
}
169
169
}
Original file line number Diff line number Diff line change @@ -118,7 +118,7 @@ void _startSend()
118
118
catch ( Exception e )
119
119
{
120
120
Dbg . ERROR_MSG ( "PacketSender::startSend(): is err: " + e . ToString ( ) ) ;
121
- _networkInterface . close ( ) ;
121
+ Event . fireIn ( "_closeNetwork" , new object [ ] { _networkInterface } ) ;
122
122
}
123
123
}
124
124
@@ -155,7 +155,7 @@ private static void _onSent(IAsyncResult ar)
155
155
catch ( Exception e )
156
156
{
157
157
Dbg . ERROR_MSG ( string . Format ( "PacketSender::_processSent(): is error({0})!" , e . ToString ( ) ) ) ;
158
- state . networkInterface ( ) . close ( ) ;
158
+ Event . fireIn ( "_closeNetwork" , new object [ ] { state . networkInterface ( ) } ) ;
159
159
Interlocked . Exchange ( ref state . _sending , 0 ) ;
160
160
}
161
161
}
You can’t perform that action at this time.
0 commit comments