مكتبة PHP لخدمة WebSockets بشكل غير متزامن. قم ببناء التطبيق الخاص بك من خلال واجهات بسيطة وأعد استخدام التطبيق الخاص بك دون تغيير أي من التعليمات البرمجية الخاصة به فقط من خلال الجمع بين المكونات المختلفة.
نهدف حاليًا إلى إحياء Ratchet لتحديثه بأحدث الإصدارات واستخدام ذلك كنقطة بداية لتحديثات أكبر قادمة. نحن بحاجة لمساعدتكم لتحقيق هذا الهدف، راجع التذكرة رقم 1054 للتعرف على طرق المساعدة.
الوصول إلى Shell مطلوب ويوصى بالوصول إلى الجذر. لتجنب انسداد الوكيل/جدار الحماية، يوصى بطلب WebSockets على المنفذ 80 أو 443 (SSL)، والذي يتطلب الوصول إلى الجذر. للقيام بذلك، جنبًا إلى جنب مع حزمة الويب المتزامنة، يمكنك إما استخدام وكيل عكسي أو جهازين منفصلين. يمكنك العثور على مزيد من التفاصيل في مستندات conf الخاصة بالخادم.
تتوفر وثائق المستخدم وواجهة برمجة التطبيقات على موقع Ratchet الإلكتروني: http://socketo.me
راجع https://github.com/cboden/Ratchet-examples للاطلاع على بعض العروض التوضيحية للعمل خارج الصندوق باستخدام Ratchet.
بحاجة الى مساعدة؟ هل لديك سؤال؟ تريد تقديم ردود الفعل؟ اكتب رسالة في القائمة البريدية لمجموعات Google.
<?php
use Ratchet MessageComponentInterface ;
use Ratchet ConnectionInterface ;
// Make sure composer dependencies have been installed
require __DIR__ . ' /vendor/autoload.php ' ;
/ * *
* chat . php
* Send any incoming messages to all connected clients ( except sender )
* /
class MyChat implements MessageComponentInterface {
protected $ clients ;
public function __construct () {
$ this -> clients = new SplObjectStorage ;
}
public function onOpen ( ConnectionInterface $ conn ) {
$ this -> clients -> attach ( $ conn );
}
public function onMessage ( ConnectionInterface $ from , $ msg ) {
foreach ( $ this -> clients as $ client ) {
if ( $ from != $ client ) {
$ client -> send ( $ msg );
}
}
}
public function onClose ( ConnectionInterface $ conn ) {
$ this -> clients -> detach ( $ conn );
}
public function onError ( ConnectionInterface $ conn , Exception $ e ) {
$ conn -> close ();
}
}
// Run the server application through the WebSocket protocol on port 8080
$ app = new Ratchet App ( ' localhost ' , 8080 );
$ app -> route ( ' /chat ' , new MyChat , array ( ' * ' ));
$ app -> route ( ' /echo ' , new Ratchet Server EchoServer , array ( ' * ' ));
$ app -> run ();
$ php chat.php
// Then some JavaScript in the browser:
var conn = new WebSocket ( 'ws://localhost:8080/echo' ) ;
conn . onmessage = function ( e ) { console . log ( e . data ) ; } ;
conn . onopen = function ( e ) { conn . send ( 'Hello Me!' ) ; } ;