ฉันมีแอปแชทที่ใช้งานได้บน localhost แต่ใช้ไม่ได้กับ heroku (คำถามจากเมื่อวาน) หลังจากการหาข้อมูล ฉันคิดว่าปัญหาคือฉันจะเริ่มแอปได้อย่างไร
โปรไฟล์ปัจจุบัน:
web: gunicorn adult_main:app
ฉันต้องใช้ gevent
ร่วมกับ gunicorn
ด้วยวิธีนี้ฉันควรจะสามารถมีสูงสุดได้ การเชื่อมต่อ socket.io 1,000 รายการ ซึ่งเพียงพอสำหรับฉันในขณะนี้
ฉันติดตั้งและเพิ่ม gevent ใน requirements.txt
แล้ว นี่คือสารสกัดจากไฟล์:
Flask-SocketIO==2.9.6
gunicorn==19.7.1
gevent==1.2.2
gevent-socketio==0.3.6
gevent-websocket==0.10.1
แต่ฉันไม่เข้าใจวิธีการเริ่มแอปอย่างถูกต้อง ในทางกลับกัน ฉันใช้เทียร์ฟรีของ heroku เพื่อทดสอบทุกอย่าง
ฉันลองใช้วิธีแก้ไขปัญหาบางอย่างซึ่งพบทางออนไลน์ แต่ฉันยังไม่เข้าใจวิธีแก้ปัญหาทั้งหมดมากนัก และยังไม่พบเอกสารประกอบเกี่ยวกับเรื่องนั้น นี่คือความพยายามบางส่วนของฉัน:
web: gunicorn -k gevent-socketio adult_main:app
web: gunicorn -k gevent adult_main:app
ฉันยังพยายามที่จะเริ่มต้นโดยไม่มี gunicorn แต่ฉันคิดว่านั่นผิดอย่างสิ้นเชิง ฉันมาถูกทางแล้วหรือนี่?
แก้ไข
ฉันจัดการให้มีความคืบหน้าด้วย:
web: gunicorn -k gevent -w 1 adult_main:app
แอปไม่ขัดข้องเมื่อเริ่มต้นตอนนี้ แต่ในเว็บคอนโซล ฉันเห็นข้อผิดพลาด:
socket.io.js:7 WebSocket connection to 'wss://my-
project.herokuapp.com/socket.io/?
EIO=3&transport=websocket&sid=0022c1937df648bbab836bfcb4c35' failed: Error
during WebSocket handshake: Unexpected response code: 500
ในบันทึกของ heroku:
RuntimeError: You need to use the gevent-websocket server.
แก้ไข
แม้ว่าฉันจะเห็นข้อผิดพลาดเหล่านี้ แต่การแชทก็ใช้งานได้บน heroku แล้ว นั่นมันแปลกจริงๆ อาจเป็นไปได้ว่าตอนนี้ฉันสามารถสร้างการเชื่อมต่อได้เพียง 1 รายการ จะต้องดำเนินการต่ออย่างไร?