首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结合websockets和http

结合websockets和http
EN

Stack Overflow用户
提问于 2017-11-23 17:30:41
回答 2查看 356关注 0票数 1

我正在创建一个程序来显示统计数据。为此,我决定使用websockets和http。Websockets,因为它不需要轮询,但允许我的服务器推送任何更改(我可以为不同的解决方案提供建议),所以更新非常迅速。对于websockets,我使用websocket++库,对于http,我使用libmicrohttpd。该程序运行在Unix/Linux系统上。

现在,使用websocket++创建websockets非常简单。我让用户决定一个端口号,就是这样。对于使用libmicrohttpd的http也是如此。现在的问题是,我如何从html指向websocket服务?我只知道一个端口号(它监听所有网络接口;它绑定到0.0.0.0),而不是主机名。我试过http://:8001/ (所以没有任何主机名,也没有ip地址),但至少火狐不采用这种方式。那我该怎么解决呢?理论上,我可以让websocket++进行http处理,但是对于像图像这样的二进制文件,这是行不通的,而且它也不允许您处理头请求。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-23 21:05:56

找到了解决办法:

http请求(通常是使用chrome & firefox)是一个"Host:"-header。例如:

代码语言:javascript
复制
GET / HTTP/1.1
Host: keetweej.vanheusden.com:8000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

因此,我现在要做的是从Host中删除主机名,并将websockets的端口号添加到其中。这行得通!

票数 0
EN

Stack Overflow用户

发布于 2017-11-23 17:37:04

我只知道一个端口号(它监听所有网络接口;它绑定到0.0.0.0),而不是主机名。我试过http://:8001/ (所以没有任何主机名,也没有ip地址),但至少火狐不采用这种方式。

这不可能让let浏览器在指定的端口上搜索指定的网页,因为您有超过100万个let服务器地址(您根本不知道)来搜索开放端口。因此,唯一的解决方案是在上面提到的html中提供一个url,脚本可以用来连接到您的服务。

如果要绑定到本地主机(127.0.0.1):http://localhost:8001/http://127.0.0.1:8001/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47460855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档