我可以将websocket连接到我本地机器上的服务器。但是当我把文件上传到一个远程的ubuntu服务器时,它不再工作了。
服务器端代码(server.php):
$master = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($master, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($master, "127.0.0.1", 80);
socket_listen($master, 20);客户端代码:
<script type="text/javascript">
var host = "ws://127.0.0.1:80/server.php";
socket = new WebSocket(host);
</script>我从chrome canary版本24打开客户端页面,服务器端没有得到任何接受的套接字。
我将主机改为“ws://XX.XX:80/server.php”为服务器的真实IP地址,但不起作用。也把服务器端的socket_bind($master,"127.0.0.1",80)改成了真实的ip,也没什么好运气的。
有谁能帮我吗?
谢谢,
茉莉
发布于 2012-10-31 23:37:00
我的朋友,当你写你的服务器。你需要让它作为一个服务运行,或者只是让它继续运行。对于php服务器,您需要从PHP Cli (php yourfile.php)运行该文件,而不是从浏览器(您可以将超时设置为0,但如果您关闭浏览器,您的服务器将停止工作)。我真的不推荐使用socket服务器而不是PHP。阅读有关使用C++ (QT,Berkeley)或Java服务器的socket服务器的更多信息。
当我们谈论PHP时,它不同于编程一个“普通”的socket服务器(有很多HTML5库可以帮助你编程一个HTML5 Websocket服务器)
https://github.com/Flynsarmy/PHPWebSocket-Chat
在该链接中,您可以找到聊天的示例。有一个名为class.PHPWebSocket.php的文件,将其包含在server.php中,并使用该库创建HTML5 Websocket服务器。查看示例,了解它的工作原理以及如何使用class.PHPWebSocket.php (查看示例中的server.php文件)。
完成后运行服务器。
然后执行以下操作:
// ...
var host = "ws://IP.OF.THE.SERVER:port";
socket = new WebSocket(host);
// ...阅读有关套接字服务器、HTML5 Websockets和class.PHPWebSocket.php实用程序的更多信息。祝你好运,我的朋友。
https://stackoverflow.com/questions/13160601
复制相似问题