Rumah  >  Soal Jawab  >  teks badan

nginx - Bagaimana untuk membuat pelayan secara proaktif memberitahu pelanggan soket selepas menerima data http?

Ini dia, saya ingin mengendalikan mentol lampu pintar Begini cara saya mengendalikannya pada halaman web, dan kemudian menyerahkan data dan menyimpannya ke pangkalan data melalui http dan menyambung ke pelayan Pelayan Ia mengeluarkan data dari pangkalan data ke klien dalam gelung yang tidak berkesudahan, dan tidur selepas setiap operasi. jadi saya ingin memperbaikinya Selepas pelayan menerima data http , ia diberikan kepada pelanggan dengan segera, dan tidak perlu menyimpannya dalam pangkalan data.

PHP中文网PHP中文网2713 hari yang lalu597

membalas semua(3)saya akan balas

  • 世界只因有你

    世界只因有你2017-05-16 17:08:59

    cuba yi cuba “websocket”
    Selain itu, ia tidak disyorkan untuk mengendalikan pangkalan data setiap kali anda membuat pertanyaan. Anda boleh membacanya dan memasukkannya ke dalam cache, dan membacanya terus dari cache untuk setiap pertanyaan. Kemudian proses lain memantau perubahan dalam nilai dan mengemas kini cache sambil mengubah suai pangkalan data.

    balas
    0
  • PHP中文网

    PHP中文网2017-05-16 17:08:59

    Anda boleh mempertimbangkan redis pangkalan data dalam memori, dan kemudian mengekalkannya dengan kerap, iaitu, menyimpannya ke cakera.

    balas
    0
  • 某草草

    某草草2017-05-16 17:08:59

    Clien dah ramai, kenapa kena baca 100,000 kali? Pelanggan dan pelayan disambungkan secara kekal, dan pemetaan disimpan dalam memori pelayan:

    map[client_id] = socket_fd
    

    http diserahkan dan disimpan ke pangkalan data, dan pelayan membaca maklumat pangkalan data dalam gelung yang tidak berkesudahan ia disiarkan kepada Semua pelanggan hanya boleh melintasi peta dan menghantar. Bilangan kali pangkalan data dibaca hanya berkaitan dengan bilangan mesej, bukan bilangan pelanggan.

    Pangkalan data yang disebutkan di atas boleh dilaksanakan menggunakan baris gilir mesej seperti redis atau nsq Pelayan boleh membuka beberapa utas atau coroutine untuk pemprosesan serentak Jika ia disimpan dalam pangkalan data, ia boleh mendapatkan data secara terus perkhidmatan Jika terminal ranap, tidakkah data akan hilang? Kebolehpercayaan tidak boleh dijamin.

    balas
    0
  • Batalbalas