【问题标题】:Connection to websocket server : OK from javascript, not OK from php连接到 websocket 服务器:从 javascript 可以,从 php 不行
【发布时间】:2018-05-05 01:26:51
【问题描述】:

我正在使用 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 连接我缺少什么?

【问题讨论】:

  • 你试过$WebSocketClient = new WebsocketClient('https://my.domain.be', 6666); 吗?似乎“wss”是一个必须手动添加到 php 的套接字传输协议(不是 100%,只是我从该错误消息中收集到的)。
  • 然后我得到:找不到套接字传输“https”(添加到我的原始帖子中)
  • 尝试用websocket服务器的ip地址代替域名(前面没有协议什么的)例如:$WebSocketClient = new WebsocketClient('111.111.111.111', 6666);
  • IP 地址上的连接将被拒绝,因为 ssl 证书仅对域“my.domain.be”有效。尽管这是我在 javascript 代码 (socket.io) 中尝试此操作时我的网络浏览器告诉我的内容。在 php 中对此进行测试再次完全没有输出(并且我的 websocket 服务器上没有连接)。
  • 这有什么帮助吗? stackoverflow.com/a/28393526/1025702 或许您需要在 apache 或您正在使用的任何服务器中启用 wss?

标签: php node.js websocket socket.io


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-08-23
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    相关资源
    最近更新 更多