Fix payment server: remove global conRide to prevent crashing non-ride DB queries
This commit is contained in:
@@ -761,13 +761,27 @@ $io->on('connection', function ($socket) use ($INTERNAL_KEY) {
|
||||
$driverState[$driverId] = [
|
||||
'lat' => 0.0,
|
||||
'lng' => 0.0,
|
||||
'speed' => -999.0,
|
||||
'speed' => -999.0,
|
||||
'heading' => -999.0,
|
||||
'status' => '',
|
||||
'expire_ts' => 0,
|
||||
];
|
||||
} else {
|
||||
// اتصال جديد لا يضمن أن السائق ما زال عضواً في geo:drivers:* —
|
||||
// api_get_nearby.php يحذف العضوية كلّما وجد driver:profile منتهياً
|
||||
// (TTL = 900 ثانية)، بينما تبقى هذه الحالة في ذاكرة الـ worker لأن
|
||||
// سوكيت خدمة الخلفية (background_service) يظل مسجَّلاً فيمنع تنظيفها
|
||||
// عند إغلاق سوكيت الواجهة.
|
||||
// وبلا تصفيرها يجد أول update_location بعد فتح التطبيق أن status و
|
||||
// lat/lng بلا تغيير ⇒ لا GEOADD ⇒ يبقى الكابتن غير مرئي على خريطة
|
||||
// الراكب حتى يتحرك 10 أمتار أو يضغط زر التوفّر (الذي يقطع السوكيت).
|
||||
// نصفّر الجزء المتطاير فقط ليُجبَر أول تحديث على إعادة تسجيله.
|
||||
$driverState[$driverId]['lat'] = 0.0;
|
||||
$driverState[$driverId]['lng'] = 0.0;
|
||||
$driverState[$driverId]['status'] = '';
|
||||
$driverState[$driverId]['expire_ts'] = 0;
|
||||
}
|
||||
|
||||
|
||||
logMsg("✅ Driver Connected: #$driverId ($platform)");
|
||||
|
||||
// 🆕 Deliver any pending orders missed during disconnection
|
||||
@@ -941,7 +955,12 @@ $io->on('connection', function ($socket) use ($INTERNAL_KEY) {
|
||||
}
|
||||
}
|
||||
|
||||
if ($needGeoadd || $statusChanged) {
|
||||
// نُعيد تأكيد العضوية في geo:drivers:* مع كل تجديد صلاحية (كل
|
||||
// EXPIRE_REFRESH_SECONDS) لا عند الحركة فقط: الكابتن المتاح والواقف
|
||||
// لا يُصدر didMove ولا statusChanged أبداً، فلو حُذف من المجموعة
|
||||
// (انقطاع، إعادة تشغيل السيرفر، تنظيف api_get_nearby) لما عاد إليها
|
||||
// قط. التكلفة: عملية GEOADD واحدة لكل كابتن كل دقيقتين.
|
||||
if ($needGeoadd || $statusChanged || $needExpireRefresh) {
|
||||
$eventBuffer[$driverId]['geoadd'] = [
|
||||
'status' => $status,
|
||||
'lng' => $lng,
|
||||
|
||||
Reference in New Issue
Block a user