繁体   English   中英

带插座和棘轮的用户请求

[英]User request with socket and ratchet

我不知道如何使用 php 套接字和棘轮。

我能够以一种简单的方式使用套接字和通知棘轮系统来实现一个简单的 sys 用户请求,但是对于我的应用程序,我将支持用套接字替换 ajax 中的调用。

例如 :

$ ('. button').on('click', function () {
// I'm blocking here.
  var ws = new WebSocket('ws://127.0.0.1:9056/?user=tester01');
    ws.onmessage = function(evt) { alert(evt.data); };
    ws.onopen = () => ws.send('get_mail');
});

然后php端检索“action”的值,在函数中做一个处理,把结果推送出去,也就是notif。 范例:

connection = \Ratchet\Client\connect('ws://127.0.0.1:9056')->then(function($conn) {
    $conn->on('message', function($msg) use ($conn) {
        echo "Received: {$msg}\n";
        if($msg == 'get_mail'){
        $inbox = imap_open("{mail.domain.com:993/imap/ssl/novalidate-cert}INBOX", "my@mail.con", "password");
        /* grab emails*/
        $emails = imap_search($inbox,'UNSEEN');
         //pre(count($emails));
        //  die();
        $out = array(
            "user" => "tester01",
            "message" => "Vous avez ".count($emails) ." email(s) non lu(s)",
            );
            $conn->send(json_encode($out));
        } else {
          $out = array(
           "user" => "tester01",
           "message" => "Aucune demande valide !",
          );
          $conn->send(json_encode($out));
        }

    $conn->close();
     });
}, function ($e) {
    echo "Could not connect: {$e->getMessage()}\n";
});

我不知道我是否足够清楚,但基本上我尝试使用与 jQuery、ajax 相同的操作,但使用套接字。

我使用 CI3、棘轮 php 和 jQuery。

我的代码基于=> https://codeload.github.com/Shkarbatov/WebSocketPHPRatchet/

感谢您的反馈意见

非常美好的一天

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM