我想使用 PHP 和 nginx 实现一个简单的 WebSocket 服务器,我的印象如下:
考虑到这一点,我尝试了以下由 JavaScript 客户端、nginx 配置和 PHP 服务器组成的简单实现(见下文)。
结果:
Connection: upgrade
的 WebSocket HTTP header , Sec-WebSocket-Key: ***
和类似的领域。我认为这很好。 onopen
事件永远不会在客户端上触发,这就是我卡住的地方。 问题:
Javascript 客户端:
function socket() {
var ws = new WebSocket("ws://socket/hello/");
ws.onopen = function() {
ws.send("Hello, World!");
};
ws.onmessage = function(event) {
console.log(event.data);
};
}
socket();
nginx配置: server {
location /hello/ {
proxy_pass http://localhost:10000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
server_name socket;
root socket;
}
PHP 服务器:(完全按照 PHP manual 中示例 #1 中的描述实现,仅将
$address
更改为 127.0.0.1
。)
最佳答案
它可以,但前提是套接字服务器实现了 websocket 协议(protocol)。如果您询问它是否可以用作通用 TCP 或 UDP 套接字,它不能。句号。
关于php - WebSocket 可以连接到 Socket 服务器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18791541/