Laravel 中使用 web-msg-sender 实现实时消息推送后,前端接口报错,检查了一下发现后端推送的数据前面多出了一个单词,总共有“offline”、“ok”和“fail”。这应该是 web-msg-sender 的状态返回,但是为什么推送到前端了呢。
经过检查是直接复制了 web-msg-sender 的官方示例代码中最后一句代码是:var_export($return)
,这段代码会将 $return
转换为合法的 php 代码输出,一般是测试用的,注释掉这句代码即可。
<?php
// 指明给谁推送,为空表示向所有在线用户推送
$to_uid = "";
// 推送的url地址,使用自己的服务器地址
$push_api_url = "http://workerman.net:2121/";
$post_data = array(
"type" => "publish",
"content" => "这个是推送的测试数据",
"to" => $to_uid,
);
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
$return = curl_exec ( $ch );
curl_close ( $ch );
var_export($return);