สิ่งที่ฉันมี
ฉันมี ซ็อกเก็ต.IO
แอพตัวอักษรจาก แม่แบบ
const ด่วน = ต้องการ ('ด่วน');
แอพ const = ด่วน ();
const http = ต้องการ ('http');
เซิร์ฟเวอร์ const = http.createServer (แอป);
const { เซิร์ฟเวอร์ } = ต้องการ ("socket.io");
const io = เซิร์ฟเวอร์ใหม่ (เซิร์ฟเวอร์);
io.on ('การเชื่อมต่อ', (ซ็อกเก็ต) => {
console.log('ผู้ใช้เชื่อมต่อ');
});
server.listen(3000, () => {
console.log('กำลังฟัง *:3000');
});
และฉันได้กำหนดค่า อาปาเช่
<VirtualHost *:443>
ServerName ws.domain.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
SSLEngine on
SSLCertificateFile /root/origin.pem
SSLCertificateKeyFile /root/private.key
</VirtualHost>
เมื่อฉันพยายามส่งคำขอผ่านบุรุษไปรษณีย์ไปที่ localhost:3000
ทุกอย่างทำงานได้
แต่เมื่อฉันพยายามส่งคำขอไปที่ ws.domain.com
ฉันมักจะได้รับ 400 คำขอไม่ถูกต้อง
สิ่งที่ฉันพยายาม
- ฉันพยายามกำหนดค่า Apache จาก เอกสาร สิ่งนี้ไม่ได้ช่วยฉัน
- ฉันพยายามใช้
งินซ์
และฉันกำหนดค่าจาก เอกสาร มันไม่ได้ช่วยฉันด้วย
- ฉันพยายามเขียนเซิร์ฟเวอร์ใหม่
กระติกน้ำ
กับ PySocketIO
และยังมี กระติกน้ำ-socketio
และได้รับข้อผิดพลาดเดียวกัน
ฉันหมดหวังแล้วและไม่เข้าใจว่าปัญหาคืออะไร
ป.ล. ถ้าสิ่งนี้มีความสำคัญ ฉันจะใช้ เซ็นโอเอส 7
. ฉันพร็อกซีโดเมนผ่าน คลาวด์แฟลร์
และแน่นอนว่ามีการเชื่อมต่อเว็บซ็อกเก็ต
ป.ล. แอปพลิเคชัน HTTP อื่น ๆ ทั้งหมดของฉันบนเซิร์ฟเวอร์ทำงานได้อย่างถูกต้อง (ผ่าน Apache) ปัญหาอยู่ในเว็บซ็อกเก็ตเท่านั้น