mardi 1 août 2017

Passing a function as a parameter when calling another function Laravel 5.4 WebSync Proxy

I am using Laravel 5.4 PHP framework to build a simple chat app.

I am using Frozenmountain's WebSync on demand for signalling and based on their docs, I need to use a PHP proxy class in order to become able to ensure the user is authenticated and/or manipulate the messages in the middle:

According to their docs, I need to implement something like this:

require_once '../../PHP/Core/Proxy.php';

function callback(&$messages)
{
foreach ($messages as &$message)
   {
    // do something with the message!
    // 
    // a simple example is to upper-case the "text"
    // property in the data payload, so if you publish
    // something like:
    // 
    //   data: {
    //     text: "Hello world!"
    //   }
    // 
    // ... we want to modify the payload to look like:
    //
    //   data: {
    //     text: "HELLO WORLD!"
    //   }
    // 
    if(isset($message['data']))
    {
        // upper-case the text value
        $message['data']['text'] = strtoupper($message['data']['text']);
    }
   }
}

// pass a private key as the 2nd parameter to use that key instead of the         incoming request's key
Proxy::invoke('callback', null, 'http://' . $_SERVER['SERVER_NAME'] .     '/request.ashx');

Now, This is what I have in my web.php where I define the routes:

Route::post('chatProxy','DbController@chatProxy' );

So I created a function inside the DbController called chatProxy:

public function chatProxy(GetOpenChatRequest $request)
    {
    function callbackFunction(&$messages) {
    foreach ($messages as &$message) {


     if(isset($message['data']))
    {
        // upper-case the text value
        $message['data']['text'] = strtoupper($message['data']['text']);
    }

    }
}

Proxy::invoke('callbackFunction', 'myPrivateKeyGoesHere', 'http://ift.tt/2wh4uqz');
}

I tried putting function callbackFunction inside the function chatProxy itself as well as outside but it keeps complaining that:

(1/1) FatalThrowableError Call to undefined function callbackFunction()

I used $this->callBackFunction as well as self::callBackFunction but it didn't resolve anything..



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire