сокеты — websocket в php не подключается к серверу. Переполнение стека

Вот мой код, и эта работа отлично отправляет сообщение. но server.php не получает его. Теперь, если я использую javascript и html5 и отправляю на ws: // localhost: 8000 / instantchat / server.php, это, конечно, работает. Я предполагаю, что мне нужно как-то указать файл server.php в функции socket_connect. Если я изменю localhost с помощью ws URL или просто с помощью прямого пути, он не сможет найти хост, поэтому он не будет подключаться. есть идеи как это сделать? Я пошел в php dot net и посмотрел почти везде на Google. Любая помощь, пожалуйста, будет принята с благодарностью

<?php

if(!($sock = socket_create(AF_INET, SOCK_STREAM, 0)))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);

die("Couldn't create socket: [$errorcode] $errormsg \n");
}
echo "Socket created \n";

//Connect socket to remote server
if(!socket_connect($sock , 'localhost' , 8000))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);

die("Could not connect: [$errorcode] $errormsg \n");
}

echo "Connection established \n";

$message = array( 'action' => 'chat_text' , 'user_id' => '4' , 'chat_text' => '');
$message = json_encode($message);

//Send the message to the server
if( !socket_send ( $sock , $message , '55' , 0))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);

die("Could not send data: [$errorcode] $errormsg \n");
} else echo "Message send successfully \n";

0

Решение

Код, который вы написали здесь, неправильно согласовывает соединение WebSocket. Вам понадобится * использовать библиотеку WebSocket для этого; увидеть «Доступна ли встроенная поддержка PHP для веб-сокетов?» для списка библиотек PHP WebSocket.

*: Хотя технически возможно написать клиента самостоятельно на основе спецификация, это довольно сложно, что делает нежелательным делать это самостоятельно, если у вас нет очень необычные требования.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]