Geliştirme Mini bir programda müşteri hizmetleri sistemi nasıl kurulur?

Metin | huazai123

Bugün getirilen farkındalık programı (WeChat hesabı zxcx0101), "Tıp Danışmanı" WeChat uygulama projesine dayalı bir soket müşteri hizmetleri modülü oluşturma sürecidir.

Çevresel hazırlık

1. HTTPS ve WSS ortamı oluşturun

WeChat düzenlemeleri nedeniyle, beyaz listedeki alan adları bağlantı noktası bilgilerini taşıyamaz. Geliştiricilerin, WeChat beyaz listedeki alan adlarını desteklemek için proxy iletimi için NginX kullanmalarını öneririz.

2. Ön uç ve arka uç iletişim JSON protokolünü tanımlayın

Bunlar arasında belirteç, mesaj kaynağının meşruiyetini doğrulamak için kullanılır, fd, mevcut soket bağlantı kaynağı kimliğidir, karşılık gelen soket bağlantı kaynağı kimliğidir ve cmd, mevcut işlemi tanımlamak için kullanılır.

Sohbet sistemi yapımı

1. Sunucu

TP5 ve swoole uzantıları kullanın ve soket isteklerini işlemek için yeni bir soket modülü oluşturun.

Dizin yapısı aşağıdaki gibidir:

Server.php ve client.php sunucularına bölünmüş olan sunucu, cli şeklinde çalışır. Spesifik kod için lütfen swoole kaynak paketindeki SSL örneğine bakın.

Komutu aşağıdaki gibi çalıştırın (önce sunucu program kodunun genel dizinine geçin):

php index.php soket / sunucu / dizin

İstemci aslında web üzerindeki bir web soketidir. Kaynak kodu paketi ayrıca referansınız için örnekler sağlar.

2. Mini terminal

Başarılı bağlantı, mesaj gönderme ve bağlantı hatalarının otomatik olarak yeniden bağlanması gibi işlemleri idare etmek için WeChat tarafından sağlanan soket arayüzünü basitçe kapsüllememiz gerekir.

Dizin yapısı aşağıdaki gibidir:

Gönderme yöntemi paket referansı:

3. Cli program kararlılığını geliştirin

Kabuk betiğini aşağıdaki gibi yazın:

count = `ps -fe | grep" soket / sunucu "| grep -v" grep "| grep" ana "| wc -l`echo $ countif ; sonraps -eaf | grep" soket / sunucu "| grep -v" grep "| awk '{print $ 2}' | xargs kill -9sleep 2ulimit -c sınırsız / opt / app / php / bin / php /opt/web/think/public/index.php soket / sunucu / indexecho "yeniden başlat"; echo $ (tarih +% Y-% m-% d_% H:% M:% S) > /opt/script/log/restart.logfi

Crontab'i etkinleştirin:

crontab -e

Bir satır ekleyin:

* / 1 * * * * /opt/script/check_server.sh # Her dakika crontab -l komut dosyasını kontrol edin

Önlemler

Öncelikle, TP5'in yardım fonksiyon modülünü kullanırken aşağıdaki hata meydana gelirse, bu, süresi dolmuş bir veritabanı bağlantısından kaynaklanmaktadır. Bağlantı sona erme süresini daha uzun ayarlamanız önerilir, ancak öyle olsa bile, her zaman bir sona erme süresi olacaktır. Bu yüzden MongoDB kullanmanızı öneririz.

İkinci olarak, WeChat uygulamasının gerçek makine ortamının bağlantı noktasını belirtmesine izin verilmez, bu durumda yukarıdaki sunucu yapılandırması işe yaramaz.Çözüm, Apache'nin SSL modülünü devre dışı bırakmak ve bunun yerine ters proxy olarak NginX'i kullanmaktır.

Ayrıca, NginX'i ters proxy olarak kullanmak isterseniz, oturumun sona ermesi sorunuyla karşılaşacaksınız. İki çözümümüz var:

  • Proxy zaman aşımını uzun bir süreye ayarlayın.
  • Birincisi, istemcinin bir kalp atışı tespiti yapmasıdır (yani, sunucuya düzenli olarak bir mesaj gönderir).

Bu iki yöntem sunucudaki yükü artıracak, kendi durumunuza göre seçim yapabilirsiniz, ikinci yöntemi öneriyoruz.

Orijinal adres:

Bu makale Know Programının izniyle yeniden basılmıştır, WeChat hesabı zxcx0101'i takip edin, WeChat arka planında "sağlık" cevabını verin ve sağlıkla ilgili uygulamalar için öneriler alın.

Steam: Oyuncular bu oyunun çok ucuz olduğunu mu düşünüyor? Ertesi gün 100 yuan yükseldi, doğru
önceki
Sanal idolden sanal çapa: 11. bölgede siyah teknoloji nerede?
Sonraki
Jiang Wen, milli futbol takımı için Dünya Kupası'nı kazanan bir bilim kurgu filmi yapabileceğini söyledi.
Niu Niu'yu 20 yıldır satan Zhenping Yolu'ndaki Jiu Niu kayınvalidesi "çocukluk anılarını yiyebilir"
Bir ortak girişim markası SUV satın almak için 200.000, Ford Escape, CR-V, Qijun, Envision nasıl seçilir?
Mekik eller, topuklar ... Gelin ve işe alım şirketinin komik olaylarını izleyin
Benzersiz bir WeChat emoji paketi oluşturmak için bu küçük programı kullanın!
Düşürmeyi iptal edin! LOL LPL Bölümü, Tarihteki En Büyük Rekabet Sistemi Reformunda Yer Aldı
İngiltere son 2 kişiyi kaçırdı ünlüler tarafından eleştirildi. Bir cümle Üç Aslan'ın en büyük zayıflığına işaret ediyor
Zafer Kralı: En sefil imparator olabilir, ancak 176. seviyede bir cildi yoktu
Zor kamera açısına sahip "Neil: Mechanical Age" COS videosu bir ödülü hak ediyor!
Çin'in en güçlü ağır makineli tüfeği: Bir top kadar güçlü ve bir istihbarat hatası nedeniyle dünyanın ilk silahı oldu
Japonya oyununun ilk turu: Shi Yuqi iyi bir turu kaçırdı ve üzüldü, Chen Long önce kazandı ve ardından ilk 16'ya yükseldi!
Zararsız Nintendo makinesinde bu oyunlar oldu!
To Top