Прошу помощи. Мне необходимо посылать данные из php7.3 в вебсокет сервер на nodejs. Сервер работает норм, порт слушает, все ок. Клиент с морды сайта коннектится и все работает, сообщения отправляются и прочее. А вот из php никак не получается, кладу код в файл, обращаюсь к нему через браузер, а сам смотрю в консоли терминалки Putty - будет ли хоть какая реакция на коннект, тишина. Из браузера - все отлично, из php - ничего. Подскажите, куда копать и что делать? Ниже - упрощенный но вполне валидный и работоспособный (в части сервера и клиента js точно) код
клиент
let ws = new WebSocket("ws://domain.ru:49470");
ws.send("Привет!");
сервер
const path = "/usr/lib/node_modules/";
var WebSocketServer = require(path + 'ws').Server,
wss = new WebSocketServer({ port: 8000 });
wss.on('connection', function connection(client)
{
console.log("куку")
client.on('message', function incoming(message)
{
client.send(message);
});
});
Php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, 'localhost', 8000);
if(!$result)
{
die('cannot connect '.socket_strerror(socket_last_error()).PHP_EOL);
}
$bytes = socket_write($socket, "Hello World");
PHP Curl версия
$url = "http://localhost:8000";
$filedata = array();
$ch = curl_init($url);
$header = "cache-control: no-cache; content-type: application/json;";
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($filedata));
$returned = curl_exec($ch);
curl_close($ch);
php websocket client
проще не куда
<?php
require 'vendor/autoload.php';
use Amp\Websocket\Client;
Amp\Loop::run(function () {
/** @var Client\Connection $connection */
$connection = yield Client\connect('ws://localhost:1337/ws');
// do something
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Подскажите пожалуйста , как решить проблемуВвожу текст , жму F3 и программа завершается без расстановки
Есть код принятия данных с TcpClientОн работает в таске, имитирующем клиент, но не в классе клиента