Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在网页上侦听http请求_Javascript_Http - Fatal编程技术网

Javascript 在网页上侦听http请求

Javascript 在网页上侦听http请求,javascript,http,Javascript,Http,我现在正在我的网站上创建一个脚本,它需要一个双向连接(该脚本是一个聊天室窗口)。但我们不想创建套接字。相反,我们希望使客户端(脚本)和服务器都能够相互发送http请求 (顺便说一句,网站服务器和脚本服务器是两个不同的服务器) 客户端(脚本)很容易向服务器发送http请求。但是客户端(脚本)监听http请求是一个大问题。 我做了一些搜索,但没有发现任何东西,也许这个要求是如此奇怪,很少被使用?是否可以在网页中嵌入一个脚本来侦听http请求? 谢谢要接收HTTP请求,您必须: 具有可公开访问的IP地

我现在正在我的网站上创建一个脚本,它需要一个双向连接(该脚本是一个聊天室窗口)。但我们不想创建套接字。相反,我们希望使客户端(脚本)和服务器都能够相互发送http请求
(顺便说一句,网站服务器和脚本服务器是两个不同的服务器)

客户端(脚本)很容易向服务器发送http请求。但是客户端(脚本)监听http请求是一个大问题。

我做了一些搜索,但没有发现任何东西,也许这个要求是如此奇怪,很少被使用?是否可以在网页中嵌入一个脚本来侦听http请求?


谢谢

要接收HTTP请求,您必须:

  • 具有可公开访问的IP地址
  • 有一个开放的、可公开访问的端口
  • 将程序绑定到该端口以侦听HTTP请求
  • 浏览器在这三个方面都有问题。您不能期望您的所有客户端都有一个可公开访问的、未阻止的IP地址,并且特定地打开了您想要的端口。但即使是这样,浏览器也无法监听传入的请求;在浏览器中没有API可以做到这一点,部分原因是浏览器是HTTP客户端而不是服务器,部分原因是提供这样的API可能会为各种攻击者提供极其强大的API,部分原因是它通常毫无用处,因为无论如何都无法访问浏览器(参见第1点)

    因此,不能将浏览器转换为HTTP服务器


    使用WebSocket。

    使用并保持持久连接打开。如果您不需要套接字,请尝试此功能!这几乎就是我发现的!但似乎IE/edge不支持这一点!?你不想创建套接字的原因是什么?这有点复杂。如果可以,我会选择使用套接字创建连接。但是如果我的队友不能创建一个能够创建套接字的服务器,我需要一个备份计划。看起来虽然我不能直接从服务器接收HTTP请求,但我可以先向服务器发送一个HTTP请求,并让服务器使用“服务器发送事件”(@JAG在评论中的建议)开始发送数据。这与WebSocket基本相同,只是单向的,因此更有限。浏览器打开与服务器的连接,并且两者都保持连接打开。@deceze是否可以让浏览器侦听来自localhost的webSocket连接?我知道我可以并且已经从浏览器连接到在本地主机上运行的C#websocket服务器,但在这种情况下,我需要浏览器充当“服务器”,并侦听来自127.0.0.1的连接请求。(纯ws://或作为http://升级到ws://)@Reahreic浏览器没有可以发送请求或连接的地址或端口。否,浏览器不能充当服务器。