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();
and this is my App code :
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?
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.