Maison >développement back-end >tutoriel php >Comment ajouter une fonction push instantanée en php

Comment ajouter une fonction push instantanée en php

不言
不言original
2018-07-04 16:57:452420parcourir

Cet article présente principalement comment ajouter la fonction push instantané à PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Ouvrez le navigateur et continuez à vous serrer la main. avec le serveur. websocket

Il fallait beaucoup de temps pour utiliser Workerman auparavant, mais maintenant Workerman a optimisé son code -》https://www.workerman.net/web-sender

Effet 1 :

Page de réception du message : http://demos.workerman.net/web-sender/

URL de l'interface Push : http://demos.workerman.net:2121/?type=publish&to=uid&content=content
où se trouve l'UID pour recevoir le message. S'il est vide, le message sera. poussé à tout le monde, le contenu est le contenu du message

Effet 2 :

Voir la section statistiques en ligne dans le pied de page de cette page, prend en charge les statistiques des personnes en ligne et des pages en ligne en temps réel

Autres applications

Service de surveillance de l'état du serveur vmstat

Message WEB framework push

BrowserQuest version PHP caméra vidéo diffusion en direct Thrift RPC Cadre d'appel à distance Json RPC cadre d'appel à distance cadre de salle de discussion système de surveillance statistique PHP têtard jeu interactif en temps réel jeu en ligne multijoueur hotflappy bird

Installation et démarrage

Tout d'abord : reportez-vous au manuel pour vérifier/installer l'environnement Workerman

1. Télécharger : (Téléchargez web-msg-sender et extrayez-le dans n'importe quel répertoire

2. Démarrer : CD du système Linux dans le répertoire du framework et exécutez php start.php start -d Le système Windows entre dans le répertoire du framework et double-cliquez sur le fichier start_for_win.bat pour démarrer

3. Test : Port d'accès du navigateur. http://ip:2123 ou http://nom de domaine:2123, par exemple http://workerman.net : 2123 est affiché dans la figure : (S'il est inaccessible, veuillez vérifier le pare-feu du serveur, et s'il l'est un serveur cloud, mettre en place un groupe de sécurité)

Test du front-end :

<script src=&#39;http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js&#39;></script>
<script>
    // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
    var socket = io(&#39;http://workerman.net:2120&#39;);
    // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
    uid = 123;
    // socket连接后以uid登录
    socket.on(&#39;connect&#39;, function(){
    	socket.emit(&#39;login&#39;, uid);
    });
    // 后端推送来消息时
    socket.on(&#39;new_msg&#39;, function(msg){
        console.log("收到消息:"+msg);
    });
    // 后端推送来在线数据时
    socket.on(&#39;update_online_count&#39;, function(online_stat){
        console.log(online_stat);
    });
</script>

Le back-end appelle l'API pour pousser vers n'importe quel utilisateur :

<?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);

Lorsque vous utilisez Linux, vous aurez peut-être besoin des extensions posix et pcntl de php

WorkerMan push est ajouté à YII2 [version 2.0]

Ce qui précède est tout le contenu de cet article, je j'espère que cela sera utile à l'apprentissage de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Opérations sur les fichiers et répertoires PHP

Comment générer des liens courts en PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn