前端代码
<script src="/vendor/webman/push/src/push.js"> </script>
<script>
// 建立连接
var connection = new Push({
url: 'ws://对应ip:3131', // websocket地址
app_key: '0aa69a30a4bd1f24f0d574482b3660a2',
auth: '/plugin/webman/push/auth' // 订阅鉴权(仅限于私有频道)
});
// 假设用户uid为1
var uid = 1;
// 浏览器监听user-1频道的消息,也就是用户uid为1的用户消息
var user_channel = connection.subscribe('user-' + uid);
// 当user-1频道有message事件的消息时
user_channel.on('message', function(data) {
// data里是消息内容
console.log(data);
});
</script>
后端 代码
public function room()
{
dd('欢迎来到聊天室');
$api = new Api(
// webman下可以直接使用config获取配置,非webman环境需要手动写入相应配置
'http://对应ip:3131',
config('plugin.webman.push.app.app_key'),
config('plugin.webman.push.app.app_secret')
);
dd($api);
// 给订阅 user-1 的所有客户端推送 message 事件的消息
$api->trigger('user-1', 'message', [
'from_uid' => 2,
'content' => '你好,这个是消息内容'
]);
return view('chat/room');
}
打印数据
腾讯云开启了3131端口 0.0.0.0/0 宝塔也放行了
连接后发现 前端ws 连接返回code码 101 发现不成功。
network的header头返回 101 Switching Protocols
测试环境为 php7.43 redis7
以前用过聊天,只要开放端口,对应ip跟协议(ws)就能通,这个暂时想不到是什么原因,有大佬指点一下吗
这个插件现在还是alpha版本,还在完善测试用例和内测
webman/push和workbunny/webman-push-server是两个插件,目前您可以先使用webman/push插件实现您所需要的功能
我今天也是装了你的插件试了下, 不太行,我也没折腾,果断先切回webman的了标签😂
原来是这样,还以为是我这边配置不对呢,感谢大佬回答
目前进入beta版,可以在测试环境试试
好的大佬
我看现在进入生产环境了吗?
生产了已经
根据文档进行对接即可