【发布时间】:2020-05-18 00:59:07
【问题描述】:
我尝试在 PHP Websocket 服务器和 JavaScript 之间建立 WebSocket 连接。看起来服务器正在运行,但我无法建立连接。
每次我尝试建立连接时都会遇到错误,提示:
到 'ws://xxx.xxx.xxx.xx:1414/' 的 WebSocket 连接失败:连接建立错误:net::ERR_CONNECTION_REFUSED
这里有人知道这个问题的解决方案吗?
顺便说一句,我在 Windows 设备上使用 XAMPP 来托管 PHP 服务器,该服务器在端口 80 上运行
PHP 服务器:
<?php
// Error Reporting und Zeitlimit für Serverbetrieb setzen
error_reporting(E_ERROR);
set_time_limit (0);
$host = 'localhost'; // Serverhost auf der gelauscht werden soll
$port = 1414; // Port auf dem Verbindungen angenommen werden sollen
// Socket erstellen
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// Socket an Adresse und Port binden
socket_bind($sock, $host, $port);
// An Port lauschen
socket_listen($sock);
$sockets = array($sock);
$arClients = array();
while (true)
{
echo "Warte auf Verbindung...rn";
$sockets_change = $sockets;
$ready = socket_select($sockets_change, $write = null, $expect = null, null);
echo "Verbindung angenommen.rn";
foreach($sockets_change as $s)
{
if ($s == $sock)
{
// Änderung am Serversocket
$client = socket_accept($sock);
array_push($sockets, $client);
print_r($sockets);
}
else
{
// Eingehende Nachrichten der Clientsockets
$bytes = @socket_recv($s, $buffer, 2048, 0);
}
}
}
?>
JavaScript 代码:
webSocket = new WebSocket('ws://xxx.xxx.xxx.xx:1414');
webSocket.send("Here's some text that the server is urgently awaiting!");
【问题讨论】:
-
什么是 WebSocket 内置 - Javascript、php 或其他?您正在使用
ws作为协议 - 您大概是从非 ssl 页面运行的? -
WebSocket 是用 php 构建的。是的,我没有使用 ssl。
-
有很多潜在的故障点,但没有看到 javascript 和 php 或不知道可能影响事情的可能基础设施的细节,这很难回答。考虑添加足够的代码来复制问题
-
好的,我已经添加了一些代码
标签: javascript php websocket