top*_*dev 3 php sockets websocket
WebSocket教程说需要两件事:
*1.应启动服务器端脚本:
php -q path/to/server.php
*2.客户端脚本应该打开套接字连接:
var socket = new WebSocket('ws://example.com:12345/server.php');
但是请求'ws://example.com/server.php'将再次运行服务器脚本.它将导致运行多个服务器实例.或客户端请求将导致服务器端错误(socket_bind(...)=>已绑定).
有人可以解释这种沟通模式吗?谢谢.
Websockets是持久连接(它们被设计为持久连接,尽管您仍然可以滥用关闭帧来重新建立连接...).(在webind中,websockets是有状态的而不是无状态的HTTP)
因此,当您打开websocket连接时new WebSocket('ws://example.com:12345/server.php');,您的Web服务器或套接字侦听脚本将接受该连接.(对于websockets,网络服务器必须使用与您使用的代码相同的语言,因为它们是持久连接,而不是无状态的类似HTTP的进出周期......)
然后它将读取您的握手请求并决定这些信息到必须路由请求的位置.
因此,您的路由器通常应该调用一些回调来根据指定的路径委托初始化.您通常不会使用websockets 路由到实际文件.您可以更多地定义要路由到其处理程序的某些路径.
然后,您通常将客户端套接字映射到用户.(例如,向某个用户发送数据)
因此,对于您的后续传入数据,您只需将客户端状态信息传递给先前根据路由确定的回调.
但是,有了你的问题,你很难猜出你的问题到底是什么.如果它没有回答您的问题,请在您的问题中更准确.它的工作原理有点过于笼统.
| 归档时间: |
|
| 查看次数: |
2420 次 |
| 最近记录: |