ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php-使用pusher将所有消息保存在我的服务器上

2019-11-20 16:32:15  阅读:492  来源: 互联网

标签:laravel chat real-time pusher php


我正在开发一个聊天室,该聊天室目前可用于连续服务器请求,并且浪费资源.

因此,我想利用pusher平台提供的服务.问题是我需要将客户端交换的每条消息保存在数据库中.就我所知,pusher仅将服务器端用于通道的认证和向客户端的消息转发,而客户端之间的通信不会通过我的服务器.

我可能已经在this thread中找到了我的问题的答案(月光回复)

除了我不知道如何实现类似的东西…有些帮助?

解决方法:

您可以通过以下两种方式之一触发聊天消息事件:

>客户->您的服务器->推送器HTTP API->所有客户
>客户-> Pusher WebSocket API->所有客户

在方案1中,消息通过您自己的服务器发送,因此您可以轻松地将它们存储在数据库中.

在方案2中,您可以设置client event WebHooks.使用这些消息路由为:

客户-> Pusher WebSocket API->所有客户Web挂钩->您的服务器

然后,当客户端事件消息通过WebHook到达时,您可以将它们存储在数据库中.

如何设置Pusher WebHook

您可以在信息中心内为Pusher App设置WebHook.

只需为应用选择WebHooks设置.

使用您自己的应用程序上的端点作为URL,创建一个新的“客户端事件” WebHook:

WebHook将被创建,因此只要为此应用触发客户端事件,端点就会被点击.

消费Pusher WebHook

对您定义的URL的POST请求的格式为:

{
  "name": "client_event",
  "channel": "name of the channel the event was published on",
  "event": "name of the event",
  "data": "data associated with the event",
  "socket_id": "socket_id of the sending socket",
  "user_id": "user_id associated with the sending socket" # Only for presence channels
}

因此,您需要解析请求的主体并获取所需的信息.

请确保阅读WebHook docs并遵守安全准则.

标签:laravel,chat,real-time,pusher,php
来源: https://codeday.me/bug/20191120/2045155.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有