Ratchet Websocket 无法从客户端接收数据? [英] Ratchet Websocket can't receive data from client?

查看:47
本文介绍了Ratchet Websocket 无法从客户端接收数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有框架 Symfony 的实时 Web 应用程序.我需要将数据从客户端发送到 websket 服务器.所以我尝试了这个:

I have a real time web application with the frameWork Symfony. I need to send data from client to the webscket server.so I have try this :

var conn = new WebSocket('ws://127.0.0.1:8080');
console.log (conn);
conn.onopen = function (e) { 
                            console.log ("Connection established!");
                conn.send("xoxo");

};

它没有显示任何错误,在服务器端我有这个:服务器代码:

It does't show any error and in the server side I have this : The Server Code :

$app=new AggregateApplication();
$loop   = \React\EventLoop\Factory::create();
$context = new \React\ZMQ\Context($loop);
$pull = $context->getSocket(\ZMQ::SOCKET_PULL);
$pull->bind('tcp://127.0.0.1:5555');
$pull->on('message', array($app, 'EditMessage'));
$webSock = new \React\Socket\Server($loop);
$webSock->listen(8080, '127.0.0.1');
$handler = $this->getContainer()->get('session.handler');
$server=new \Ratchet\Wamp\WampServer($app);
$server = new SessionProvider($server, $handler);
$webServer = new \Ratchet\Server\IoServer(new     \Ratchet\WebSocket\WsServer($server),$webSock);
$loop->run();

这是我的应用代码:

class AggregateApplication implements WampServerInterface {
    protected $clients;
    protected $comming;
    public function __construct() {
        $this->clients = array();
        $this->comming = array();
    }

    public function onOpen(ConnectionInterface $conn){
        $this->clients[array_shift($this->comming)]=$conn;
        echo "New connection! ".array_shift($this->comming)." ({$conn->resourceId})\n";
    }
    public function onCall(ConnectionInterface $conn, $id, $topic, array $params){

    }
     public function onSubscribe(ConnectionInterface $conn, $topic){
        echo "onSubscribe";
    }
    public function onUnSubscribe(ConnectionInterface $conn, $topic){

    }
    public function onPublish(ConnectionInterface $conn, $topic, $event, array $exclude, array $eligible){

    }
    public function onClose(ConnectionInterface $conn) {
        unset($this->clients[array_search($conn, $this->clients)]);
       echo 'close connection ';
    }

    public function onError(ConnectionInterface $conn, \Exception $e) {
    }
}

我找不到的问题是我会捕捉到客户端发送的消息吗?

The problem I can't find were I ll catch the message sent from client?

推荐答案

您的消息不符合 WAMP 标准.查看 AutobahnJS 以了解您的客户端连接.另请查看棘轮推送集成教程,其中有一个功能示例.

Your message does not conform to the WAMP standard. Take a look at AutobahnJS for your client connection. Also take a look at the Ratchet Push Integration Tutorial, which has a functional example.

这篇关于Ratchet Websocket 无法从客户端接收数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆