连接到websocket服务器:来自javascript的确定,而不是来自php的确定

时间:2017-11-21 14:27:52

标签: php node.js websocket socket.io

我正在使用socketio来运行websocket服务器。

var fs = require('fs');
var options = {
  key: fs.readFileSync('/etc/letsencrypt/live/my.domain.be/privkey.pem'),
  cert: fs.readFileSync('/etc/letsencrypt/live/my.domain.be/fullchain.pem')
};
var app = require('https').createServer(options)
  , io = require('socket.io').listen(app)

app.listen(6666);

从javascript(使用socket.io客户端)连接到它可以正常工作。

var socket = io.connect('wss://my.domain.be:6666');

这也有效:

var socket = io.connect('https://my.domain.be:6666');

现在我想用php连接。 我在这里找到了一个简单的php客户端:How can I send data/text from PHP using WebSocket to process?

但是在使用时我看不到传入连接:

$WebSocketClient = new WebsocketClient('wss://my.domain.be', 6666);
$WebSocketClient->sendData("MyUserNameFromPHP");

我收到错误:

  

错误:22145040:无法找到套接字传输" wss" - 你是否   忘记在配置PHP时启用它吗?

使用时:

$WebSocketClient = new WebsocketClient('https://my.domain.be', 6666);

我收到错误:

  

错误:10905616:无法找到套接字传输" https" - 你是否   忘记在配置PHP时启用它吗?

使用tls://或ssl://时根本没有输出(我的websocket服务器上仍然没有连接)。

那么我错过了从我的PHP代码建立websocket连接的原因?

1 个答案:

答案 0 :(得分:0)

https://stackoverflow.com/a/61808878/3701985 请在另一个类似的线程上尝试我的答案,我实际上尝试了多种解决方案,现在只想提供对我有用的答案。 https://github.com/ratchetphp/Pawl