小编Jes*_*sse的帖子

Websockets - 获取数据(轮询?)

这可能是一些愚蠢的问题,一些已经缠绕它的人,也许我只需要更多的.

问题:无论是使用还是,似乎仍然会发生一些轮询.它是否正确?

示例 (不是真实的项目):我想留意文本文件.除非我遗漏了一些东西(更多的咖啡?),我还是不得不a)询问服务器是否有更新,或b)告诉页面我有更新; 通过将PHP代码暂停一段时间或在客户端进行setTimeout循环.

我明白的事情:我确实看到了在服务器和页面之间来回交谈的好处.我看到我没有发送http请求.所以我看到了好处.

细节:我一直只是使用所以我决定从我认为理解的内容中查看整个websockets的东西,是实时发送给客户端的数据,但是,如上所述,除非我遗漏了某些东西或者这里有一些逻辑,似乎我还是要告诉来检查数据的间隔,否则数据将在无限循环中发送(想象一下调用mysql).

也许我的代码中的逻辑是各种各样的坏.欢迎您查看.从我发现的所有示例中,每个人似乎只是在PHP中运行无限循环

PHP(减去所有连接术语)

while(true) {
    // update once a second
    $this->send($client, file_get_contents('/my/file/test.txt'));
    sleep(1);
}
Run Code Online (Sandbox Code Playgroud)

使用Javascript

var websocket = new WebSocket( "ws://mysite.com:12345" );

websocket.onmessage = function( str ) {
    console.log( str.data );
};
Run Code Online (Sandbox Code Playgroud)

我只是没有理解这个如何在没有某种轮询的情况下实现它的逻辑.也许这就是它应该如何运作.

我明白,如果我从代码中删除睡眠,事情会变得更加实时,太多,但这似乎会在上面的例子中无限地轮询文件并且这似乎不对.

编辑:为了澄清,我并不是专门寻找一个观看文本文件的具体解决方案.如果你撇开这个问题,你可能已经想到了这一点.

编辑:未来的访问者,答案是:当用户发送更改时,您不会专门关注更改,而是将更改发送给打开的连接.

javascript php websocket phpwebsocket

5
推荐指数
0
解决办法
2527
查看次数

标签 统计

javascript ×1

php ×1

phpwebsocket ×1

websocket ×1