我在本地测试完全没有问题,本地的 nginx 监听 80 端口转发到 express 也是完全没有问题,但是直到启用 ssl ,开启 443 端口后,服务端发送消息,客户端就无法接收了,完全找不到头绪,网上的例子都试了就是没有用 以下是我的 nginx 配置
server {
listen 443 ssl http2;
listen [::]:443 http2 ssl;
server_name www.mydomain.com;
ssl_certificate /etc/letsencrypt/live/www.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.mydomain.com/privkey.pem;
access_log off;
location / {
proxy_pass http://127.0.0.1:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 300s;
chunked_transfer_encoding off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
我的服务端代码
eventRouter.get('/event/:userID', async (req, res) => {
const headers: OutgoingHttpHeaders = {
'Content-Type': 'text/event-stream',
'Connection': 'keep-alive',
"Cache-Control": 'no-cache',
"X-Accel-Buffering": 'no'
}
res.writeHead(200, headers)
res.write(JSON.stringify({ type: 'handshake' } satisfies IEventMessage))
}
有知道的大佬吗,实在不行我滚回 long-loop 了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.