PHP:Web 套接字和 html 5

Posted

技术标签:

【中文标题】PHP:Web 套接字和 html 5【英文标题】:PHP:Web Sockets and html 5 【发布时间】:2012-08-25 22:40:24 【问题描述】:

我正在做一个项目,我正在尝试构建一个界面,例如如果用户已登录并且介于两者之间,如果服务器有该用户的任何消息,那么用户将立即收到通知(如 facebook)所以我是通过 websockets 但我应该从哪里开始感到困惑?请给我一些基本的想法?

我使用 php 作为实现语言

我目前正在寻求有关使用 PHP、NodeJS 和 socket.io 的组合实现实时通知的建议。 目前我对 Node 和 socket.io 几乎没有做任何事情,所以我对实现这一目标的最佳方法感到茫然。我已经做了一些基本的聆听,但没有什么极端的。

现在我的问题是:

    socket.io 如何知道新的通知,PHP 是否应该负责将数据(比如创建了一个帖子)发送到 socket.io 并从那里广播到连接的客户端? socket.io 如何知道哪些客户端需要通知?

我真的不知道还有什么。目前这对我来说有点多。我只是不知道如何分发通知。

任何建议将不胜感激。我不期待详细的演练,只是朝着正确的方向推进,或者了解它是如何网格化的。

【问题讨论】:

【参考方案1】:

从阅读什么是 websockets、它们如何工作、浏览器支持什么开始。互联网上到处都是这些信息。

对于php实现,看一下http://socketo.me/。 PHP 不是最适合套接字通信的。我会将 nodejs+socket.io 和 php 用于“常规内容”。不要害怕混合技术,所有问题都没有锤子。

编辑

如果你不了解 nodejs,那可能很难,但值得你花时间去学习。

一些想法:

您可以在数据库上创建带有通知的表,然后如果发生某些事件,例如。帖子添加在那里添加记录(如新帖子的数量和 user_id),然后从 nodejs 端连接到数据库获取数据库并查找当前用户的通知。

然后 nodejs 通知监听客户端有关更改(socket.io)

如果用户评论新帖子更新计数器为 0,(类似于 facebook 在您有新消息时所做的事情),然后 nodejs 将知道没有新帖子,因此无需通知。

最难的部分是获取当前用户会话。

一些相关的:

http://socket.io/

What mysql drivers are available for node.js?

Sharing data between php and node.js via cookie securely

Authenticate user for socket.io/nodejs

Socket IO send to specified user ID

【讨论】:

无论如何我都有 websockets 的基本概念,但是合并这些技术会让我头疼 嗯,没那么难,但如果你更喜欢php,socket.me应该没问题。 请提供我现在因为这个问题而感到沮丧的任何工作示例

以上是关于PHP:Web 套接字和 html 5的主要内容,如果未能解决你的问题,请参考以下文章

HTML 5 - 浏览器上的 Web 套接字关闭

php web socket脚本bat文件保持打开

是否有来自 HTML 5 的 Web 套接字的 WCF 服务器实现?

Spring MVC 3.2 和 HTML5 中的 Web 套接字

python基础--socket套接字粘包问题

Python网络编程利用Python进行TCPUDP套接字编程