那就需要写一个websocket客户端程序去去接收消息;想直接自己写可以看这篇 博客:老司机带你用 PHP 实现 Websocket 协议 在laravel中 还有一个ratchet扩展 10里面我不知道能不能用 blog.csdn.net/qq_36901092/article/... 其他还有 Swoole、workerman等框架
如果用 laravel 的广播的话,应该就不行了,广播几乎是单向的,除了订阅那一下子是去授权接口走一遭,其他的通讯基本上都是服务器端动触发的。
如果不用广播倒是可以,那就需要自己基于 socket.io 之类的协议之上自己定义前后端沟通的消息格式,再通过命令行调用或者 redis sub/pub 的方式与 laravel 程序进行交互。
如果你只是想要连接 Websocket 根本也用不到 Laravel,一个 Html 页的 Script 就可以了
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>WebSocket Demo</title>
</head>
<body>
<h1>WebSocket Demo</h1>
<p id="log"></p>
<form>
<label for="message">Send message:</label>
<input type="text" id="message">
<button type="button" onclick="sendMessage()">Send</button>
</form>
<script>
var ws = new WebSocket("ws://localhost:8080");
ws.onopen = function() {
log("Connected to WebSocket server!");
};
ws.onmessage = function(event) {
log("Received message: " + event.data);
};
function sendMessage() {
var message = document.getElementById("message").value;
ws.send(message);
log("Sent message: " + message);
}
function log(message) {
var logField = document.getElementById("log");
logField.innerHTML = logField.innerHTML + "<br>" + message;
}
</script>
</body>
</html>
然后你在浏览器里打开就行了,就这么简单。
许多项目我都是独立使用 workman 做 websocket 服务器,使用 GatewayWorker 能快速开发相关功能,集成到 laravel 或者 tp 等 php 常规框架一起使用,能完美解决 websocket 通讯问题,实现了聊天室、客服,包括小程序中的各种实时交互与应用相关的功能。可以看 demo(https://element.wmhello.cn)
用workerman,可单独使用,也可内嵌入laravel