PHP WebSocket客户端?或者在PHP内部运行JavaScript的方法(没有浏览器)?希望是棘轮
我对WebSockets非常陌生,一直在玩,并获得了一个简单的聊天室来处理我的AWS EC2实例。现在我正在尝试使用另一个服务,它可以运行一个定制的PHP脚本(托管在它们的服务器上),在我的服务器上打开websocket连接并发送消息 我让EC2 URL正常工作,当我在浏览器中运行它时(包括在我的手机上,它与我的计算机不在同一网络上),它正常工作。我现在只是在URL中传递一个测试API键和值(用PHP GET抓取),如下所示: 这是可行的,但这仅仅是因为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页面加载了以
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客户端),一个非常不稳定,另一个缺少客户端,最后一个让我停顿,不过如果没有更好的解决方案,我可能会尝试。实际上,我已经在我自己问题的最后一段中与这个问题联系起来了。谢谢你!哦,祝你好运,你可以自己写一个,特别是如果你只需要有限的功能。找出要使用的协议,并找到它的规范。