在做一个 php 的项目,需要使用 websocket 用 tornado 来实现, 遇到了问题

2015-08-25 21:13:03 +08:00
 dai269619118

项目的域名:108.com
tornado 用 nginx 做了一个代理

server { 
    listen  80; 
    server_name socket.108.com; 

    location / { 
        proxy_pass  http://127.0.0.1:8888; 
    }   
}

在前端 108.com 域名发起 websocket 我猜是跨域的问题,在同一个域名下 websocket 是没问题的,google 了也没有搜到什么具体跨域的文章

WebSocket connection to 'ws://socket.108.com/socket' failed: Error during WebSocket handshake: Unexpected response code: 400


问题:
1.如果用一个域名,这样 ngixn 需要怎么配置?好像端口不一样也会出现跨域问题 这个自己倒还没试

2.有其他 php+tornado 实现 websocket 的具体方法吗?

3040 次点击
所在节点    程序员
11 条回复
manhere
2015-08-25 21:42:17 +08:00
没看出和 php 有什么关系啊
lbp0200
2015-08-25 21:51:46 +08:00
请看 http 协议和 tcp 协议的区别, websocket 是纯 tcp 协议
barbery
2015-08-25 21:56:10 +08:00
websocket 没有跨域。。。。
openroc
2015-08-25 21:58:25 +08:00
server {
listen 80;
server_name oo.xx.com;

proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto $scheme;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

location / {
proxy_pass http://ooxx_6969;
}
}
dai269619118
2015-08-25 22:17:49 +08:00
@lbp0200 谢谢 好的
@barbery 我再看看程序的问题
@openroc 谢谢 能说下大概这配置实现的意思吗
lvfujun
2015-08-25 22:21:54 +08:00
@dai269619118 楼主一看就是被网上的教程骗了。
qiayue
2015-08-25 22:23:49 +08:00
108.com 这个域名要七八位数吧
sunmonster
2015-08-25 22:44:49 +08:00
请参见 nginx websocket 文档 http://nginx.org/en/docs/http/websocket.html
hellogbk
2015-08-25 23:25:56 +08:00
websocket 在目前来看还是一个坑啊。 经常不得不 fallback 到 long polling 下面去。
websocket 的可用性跟浏览器兼容性还有用户的网络环境有很大关系。
ws 的成功率没有 wss 高。
dai269619118
2015-08-25 23:47:55 +08:00
@qiayue 大哥是本地重定向的。。。
openroc
2015-08-26 14:20:53 +08:00
@hellogbk 目前用 node 的 websocket 还凑合, 网络关系比较大,没测过高并发下情况。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/215960

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX