javascript-来自Android和IOS客户端的棘轮套接字

javascript-来自Android和IOS客户端的棘轮套接字,第1张

概述我已经使用Ratchet编写了套接字PHP代码.这是简单的代码,当我从Web发送和获取消息时可以使用-javascript:useRatchet\MessageComponentInterface;classChatimplementsMessageComponentInterface{protected$clients;publicfunction__construct(

我已经使用Ratchet编写了套接字PHP代码.这是简单的代码,当我从Web发送和获取消息时可以使用-JavaScript:

    use Ratchet\MessageComponentInterface;    class Chat implements MessageComponentInterface{        protected $clIEnts;        public function __construct(){            $this->clIEnts = new SplObjectStorage();        }        function onopen(\Ratchet\ConnectionInterface $conn)        {            echo "DID Open\n";            $this->clIEnts->attach($conn);        }        function onClose(\Ratchet\ConnectionInterface $conn)        {            echo "DID Close\n";            $this->clIEnts->detach($conn);        }        function one rror(\Ratchet\ConnectionInterface $conn, \Exception $e)        {            echo "The following error occured: ". $e->getMessage();        }        function onMessage(\Ratchet\ConnectionInterface $from, $msg)        {            $msgObj = Json_decode($msg);            echo $msgObj->msg;            foreach($this->clIEnts as $clIEnt){                if($clIEnt !== $from){                    $clIEnt->send($msg);                }            }        } }

问题是当我使用Java客户端时-来自AndroID App.我使用Activity中的线程.它没有例外,没有错误. clIEnt.isConnected()为true.但是没有服务器代码没有被调用-onopen方法,onMessage等.我怎样才能解决这个问题. IOS的情况几乎相同.客户端连接到服务器,但是其中一些棘轮方法被调用.仅从JavaScript调用它们. Java代码:

new Thread(new Runnable() {            @OverrIDe            public voID run() {                try {                    clIEnt = new Socket("XX.XX.XX.XX", 2000);                    printWriter = new PrintWriter(clIEnt.getoutputStream());                    printWriter.write("AndroID Message");                    printWriter.flush();                    printWriter.close();                    clIEnt.close();                } catch (Exception e) {                    e.printstacktrace();                }            }        }).start();

解决方法:

尝试用于
安卓:https://github.com/TooTallNate/Java-WebSocket
的iOS:https://github.com/square/SocketRocket
因为棘轮是WebSocket.并且您的主机名应以ws://开头

总结

以上是内存溢出为你收集整理的javascript-来自Android和IOS客户端的棘轮套接字全部内容,希望文章能够帮你解决javascript-来自Android和IOS客户端的棘轮套接字所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1079718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存