Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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
PHP WebSocket客户端?或者在PHP内部运行JavaScript的方法(没有浏览器)?希望是棘轮_Javascript_Php_Sockets_Websocket - Fatal编程技术网

PHP WebSocket客户端?或者在PHP内部运行JavaScript的方法(没有浏览器)?希望是棘轮

PHP WebSocket客户端?或者在PHP内部运行JavaScript的方法(没有浏览器)?希望是棘轮,javascript,php,sockets,websocket,Javascript,Php,Sockets,Websocket,我对WebSockets非常陌生,一直在玩,并获得了一个简单的聊天室来处理我的AWS EC2实例。现在我正在尝试使用另一个服务,它可以运行一个定制的PHP脚本(托管在它们的服务器上),在我的服务器上打开websocket连接并发送消息 我让EC2 URL正常工作,当我在浏览器中运行它时(包括在我的手机上,它与我的计算机不在同一网络上),它正常工作。我现在只是在URL中传递一个测试API键和值(用PHP GET抓取),如下所示: 这是可行的,但这仅仅是因为ws trigger.php页面加载了以

我对WebSockets非常陌生,一直在玩,并获得了一个简单的聊天室来处理我的AWS EC2实例。现在我正在尝试使用另一个服务,它可以运行一个定制的PHP脚本(托管在它们的服务器上),在我的服务器上打开websocket连接并发送消息

我让EC2 URL正常工作,当我在浏览器中运行它时(包括在我的手机上,它与我的计算机不在同一网络上),它正常工作。我现在只是在URL中传递一个测试API键和值(用PHP GET抓取),如下所示:

这是可行的,但这仅仅是因为
ws trigger.php
页面加载了以下JavaScript并从浏览器中运行它:

<script type="text/javascript">
    var conn = new WebSocket('ws://22.222.22.222:8080');
    conn.onopen = function(e) {
        console.log("Connection established!");
        conn.send(<?php echo $_GET['name']; ?>);
    };
</script>

var conn=newwebsocket('ws://22.222.22.222:8080');
conn.onopen=功能(e){
log(“已建立连接!”);
conn.send();
};
对我来说,通过PHP运行“连接到websocket”和“通过socket发送消息”最简单的方法是什么?如果我必须使用一个库,我宁愿使用Ratchet,因为我已经这样做了,但我觉得我肯定错过了一些东西,因为这不是一个独特的问题


我已经尝试过搜索StackOverflow了,但是我已经找到了一些答案(比如在我转到Ratchet之前给我带来了麻烦,还有)

为什么要使用PHP作为websocket客户端,因为PHP是无状态的,它只会在请求时做事情,这与WebSocket(双向持久连接)的用途完全相反。我认为这是一个XY问题。我正在与第三方集成,第三方允许我在他们的服务器上运行PHP脚本。该脚本不会导致浏览器读取HTML或JavaScript,因此我无法通过JavaScript(只有PHP)将数据从该服务推送到我的服务中。我需要他们推送的事件在每个登录用户的屏幕上触发实时POP,因此WebSocket推送似乎是比Ajax轮询更好的解决方案。啊,我明白了,我当时看不到解决方法。试试答案吧。Ratchet似乎没有内置客户端。是的,在这四个答案中,有一个是“Ratchet”(正如回复所说,它缺少WebSocket客户端),一个非常不稳定,另一个缺少客户端,最后一个让我停顿,不过如果没有更好的解决方案,我可能会尝试。实际上,我已经在我自己问题的最后一段中与这个问题联系起来了。谢谢你!哦,祝你好运,你可以自己写一个,特别是如果你只需要有限的功能。找出要使用的协议,并找到它的规范。