Skip to content
This repository has been archived by the owner on Aug 25, 2022. It is now read-only.

$client = new Client(new Version2X('wss:// #188

Open
titoff002 opened this issue Apr 12, 2019 · 8 comments
Open

$client = new Client(new Version2X('wss:// #188

titoff002 opened this issue Apr 12, 2019 · 8 comments
Labels

Comments

@titoff002
Copy link

titoff002 commented Apr 12, 2019

Hello,

I would like to use elephantio with wss, but it does not work.

try{
        $client = new Client(new Version2X('wss://'.$url));

        $client->initialize();

        $client->close();
      }catch(\Exception $e){
        Log::debug('<<<ERR curlWws:'.print_r($e->getMessage(),true));
      }

I have the following error message:

:An error occurred while trying to establish a connection to the server

how can I fix this problem ??

Thanks.

@Taluu Taluu added the support label Apr 13, 2019
@Taluu
Copy link
Contributor

Taluu commented Apr 13, 2019

Could you dump the getErrorMessage() from the exception ? Thanks.

@titoff002
Copy link
Author

Hello,

My $urltchat =>

wss://notifications.server.fr

My function
` public function testEmit () {

    $urltchat = \Config::get('app.TCHAT_SERVER_URL');  
    Log::debug('<<<URL CHAT:'.print_r($urltchat,true));        
    try{
      $client = new Client(new Version1X($urltchat, [
          'headers' => [
              'X-My-Header: MDC-WEB'
          ],
          'context' => [
              'ssl' => [
                  'verify_peer' => true,
                  'verify_peer_name' => true,
              ]
          ]            
      ]));
      $client->initialize();        
  }catch(Execption $ex) {
      Log::debug('<<<URL CHAT:'.print_r($ex,true)); 
  }        
}`

My error message dumped :
`
ElephantIO\Exception\ServerConnectionFailureException: An error occurred while trying to establish a connection to the server in file D:\backoffice_backoffice\vendor\wisembly\elephant.io\src\Engine\SocketIO\Version1X.php on line 187
Stack trace:

  1. ElephantIO\Exception\ServerConnectionFailureException->() D:\backoffice_backoffice\vendor\wisembly\elephant.io\src\Engine\SocketIO\Version1X.php:187
  2. ElephantIO\Engine\SocketIO\Version1X->handshake() D:\backoffice_backoffice\vendor\wisembly\elephant.io\src\Engine\SocketIO\Version1X.php:48
  3. ElephantIO\Engine\SocketIO\Version1X->connect() D:\backoffice_backoffice\vendor\wisembly\elephant.io\src\Client.php:60
  4. ElephantIO\Client->initialize() D:\backoffice_backoffice\app\Http\Controllers\RegisterController.php:56
  5. App\Http\Controllers\RegisterController->testEmit() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Controller.php:54
  6. call_user_func_array() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Controller.php:54
  7. Illuminate\Routing\Controller->callAction() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php:45
  8. Illuminate\Routing\ControllerDispatcher->dispatch() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Route.php:212
  9. Illuminate\Routing\Route->runController() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Route.php:169
  10. Illuminate\Routing\Route->run() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Router.php:665
  11. Illuminate\Routing\Router->Illuminate\Routing{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:30
  12. Illuminate\Routing\Pipeline->Illuminate\Routing{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php:41
  13. Illuminate\Routing\Middleware\SubstituteBindings->handle() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151
  14. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
  15. Illuminate\Routing\Pipeline->Illuminate\Routing{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Middleware\ThrottleRequests.php:57
  16. Illuminate\Routing\Middleware\ThrottleRequests->handle() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151
  17. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
  18. Illuminate\Routing\Pipeline->Illuminate\Routing{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:104
  19. Illuminate\Pipeline\Pipeline->then() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Router.php:667
  20. Illuminate\Routing\Router->runRouteWithinStack() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Router.php:642
  21. Illuminate\Routing\Router->runRoute() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Router.php:608
  22. Illuminate\Routing\Router->dispatchToRoute() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Router.php:597
  23. Illuminate\Routing\Router->dispatch() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php:176
  24. Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:30
  25. Illuminate\Routing\Pipeline->Illuminate\Routing{closure}() D:\backoffice_backoffice\vendor\fideloper\proxy\src\TrustProxies.php:57
  26. Fideloper\Proxy\TrustProxies->handle() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151
  27. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
  28. Illuminate\Routing\Pipeline->Illuminate\Routing{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php:31
  29. Illuminate\Foundation\Http\Middleware\TransformsRequest->handle() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151
  30. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
  31. Illuminate\Routing\Pipeline->Illuminate\Routing{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php:31
  32. Illuminate\Foundation\Http\Middleware\TransformsRequest->handle() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151
  33. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
  34. Illuminate\Routing\Pipeline->Illuminate\Routing{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php:27
  35. Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151
  36. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
  37. Illuminate\Routing\Pipeline->Illuminate\Routing{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php:62
  38. Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151
  39. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
  40. Illuminate\Routing\Pipeline->Illuminate\Routing{closure}() D:\backoffice_backoffice\vendor\barryvdh\laravel-cors\src\HandlePreflight.php:29
  41. Barryvdh\Cors\HandlePreflight->handle() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151
  42. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
  43. Illuminate\Routing\Pipeline->Illuminate\Routing{closure}() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:104
  44. Illuminate\Pipeline\Pipeline->then() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php:151
  45. Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter() D:\backoffice_backoffice\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php:116
  46. Illuminate\Foundation\Http\Kernel->handle() D:\backoffice_backoffice\public\index.php:55

`

@Taluu
Copy link
Contributor

Taluu commented Apr 15, 2019

This doesn't give me what I want. What I want is var_dump($e->getErrorMessage()), which (for some reasons) doesn't appear in your print_r.

@titoff002
Copy link
Author

image

PS: Don't work with laravel, but work fine with socketIO/javascript

@Taluu
Copy link
Contributor

Taluu commented Apr 15, 2019

That is still not what I want.

<?php
use ElephantIO\Client;
use ElephantIO\Engine\SocketIO\Version2X;
use ElephantIO\Exception\ServerConnectionFailureException;

try {
    $client = new Client(new Version2X('wss://'.$url));
    $client->initialize();

    $client->close();
} catch (ServerConnectionFailureException $e) {
    dump($e->getErrorMessage());
} catch (\Exception $e){
    Log::debug('<<<ERR curlWws:'.print_r($e->getMessage(),true));
}

something along those lines. I need the result of the dump (or var_dump, print, ... whatever)

@titoff002
Copy link
Author

titoff002 commented Apr 15, 2019

I 've replace this line
$result = @file_get_contents($url, false, stream_context_create($context));

By
$result = file_get_contents($url, false, stream_context_create($context));

And i have a new error message :

"file_get_contents(): Unable to find the wrapper "wss" - did you forget to enable it when you configured PHP?"

@Taluu
Copy link
Contributor

Taluu commented Apr 15, 2019

The error is pretty explicit, your php configuration doesn't seem to know the wss protocol.

You either need to declare the protocol (through the https://www.php.net/manual/en/class.streamwrapper.php class), or you could use another protocol such as http or https.

@titoff002
Copy link
Author

Thanks,

I'm not understand for declare "wss" protocol : have you a code ?

You speak french ?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants