laravel 实时应用程序(例如 gmail 和 Github)的要求
Requirements for laravel real-time apps like gmail and Github
用于在 Laravel 中实现实时应用程序,例如 Gmail 或 Github,其中所有的事情(比如打开新页面、发送邮件、收件箱、提交表单等)都发生在一个页面上,我做了很多研究,发现我应该使用 Laravel Pusher 包。但是我认为对于大型项目来说并不是免费的。
我还阅读了 https://www.codetutorial.io/laravel-5-and-socket-io-tutorial/ 篇使用 redis 和 NodeJs 的文章(以及许多其他文章)。
不管 Laravel Pusher
,我的问题是通过 Laravel?
实现实时应用程序的最佳和常用方法是什么
我正在使用 Laravel 5.2
您所说的实时应用程序实际上称为单页应用程序或 SPA。实时应用程序是指用于飞机、火车和证券交易所的软件。
如果你想创建SPA,你不一定需要推送服务。我建议你看看这些前端项目:
- Angular js
- 反应 js
- Vue 语言
正如@gurghet 所指出的,SPA 和实时应用程序之间存在差异。 Gmail 确实是一个实时应用程序而不是 SPA。
API 先来:
如果您正在研究创建实时应用程序,那么首先您必须创建一个 API (REST/SOAP)。 Laravel 和 Lumen 都提供了一个优秀的代码库来立即启动你的 api。
选择合适的JS框架:
一旦你有了API,你将需要一个JS框架。当谈到实时应用程序时,只有大量的框架可以为您提供真正的灵活性。 Angular 位居榜首,其次是 REACT、BACKBONE 和 meteor。
Angular有很多粉丝following/community,所以应该是合适的选择。
完美的PHP堆栈:
Laravel + Angular 堆栈很棒。 Laravel 非常灵活,因此您几乎可以使用它执行任何类型的服务器端脚本。它还会不断激励您每次都编写更清晰的代码。虽然 angular 非常适合 2 路绑定。这意味着当您将相同的数据传递到不同位置的视图时,angular 会跟踪对数据所做的所有更改。它还具有诸如 PROMISES 之类的功能,其中 angular 不会等待从数据库中获取真实数据,而只是假设数据应该已经更新到数据库中并只向您显示更改(它实时跟踪)。
身份验证: 整个过程中最令人沮丧的部分是安全地验证用户,即将数据从 angular 传递到 laravel。您必须使用 OAUTH 或 JWT 来验证用户。虽然两者都已经存在了一段时间,但您不会发现任何关于身份验证的好东西 code/guides。我在这里花了很多时间,但你总是可以在 codecanyon 上购买一些自举/正确配置的项目。
套接字是关键:
没有套接字就不可能存在实时系统,您不能只是定期访问数据库以检查更新的值。这里套接字通过通知系统更新可用来挽救这一天,您可以从数据库中获取更新的值。
现在像 pusher 这样的服务已经解决了大部分问题,laravel 还为 pusher 提供了一个内置的 api-client。但是您始终可以自由使用开源软件来创建自己的套接字系统,例如。 socket.io.
用于在 Laravel 中实现实时应用程序,例如 Gmail 或 Github,其中所有的事情(比如打开新页面、发送邮件、收件箱、提交表单等)都发生在一个页面上,我做了很多研究,发现我应该使用 Laravel Pusher 包。但是我认为对于大型项目来说并不是免费的。
我还阅读了 https://www.codetutorial.io/laravel-5-and-socket-io-tutorial/ 篇使用 redis 和 NodeJs 的文章(以及许多其他文章)。
不管 Laravel Pusher
,我的问题是通过 Laravel?
我正在使用 Laravel 5.2
您所说的实时应用程序实际上称为单页应用程序或 SPA。实时应用程序是指用于飞机、火车和证券交易所的软件。
如果你想创建SPA,你不一定需要推送服务。我建议你看看这些前端项目:
- Angular js
- 反应 js
- Vue 语言
正如@gurghet 所指出的,SPA 和实时应用程序之间存在差异。 Gmail 确实是一个实时应用程序而不是 SPA。
API 先来:
如果您正在研究创建实时应用程序,那么首先您必须创建一个 API (REST/SOAP)。 Laravel 和 Lumen 都提供了一个优秀的代码库来立即启动你的 api。
选择合适的JS框架:
一旦你有了API,你将需要一个JS框架。当谈到实时应用程序时,只有大量的框架可以为您提供真正的灵活性。 Angular 位居榜首,其次是 REACT、BACKBONE 和 meteor。
Angular有很多粉丝following/community,所以应该是合适的选择。
完美的PHP堆栈: Laravel + Angular 堆栈很棒。 Laravel 非常灵活,因此您几乎可以使用它执行任何类型的服务器端脚本。它还会不断激励您每次都编写更清晰的代码。虽然 angular 非常适合 2 路绑定。这意味着当您将相同的数据传递到不同位置的视图时,angular 会跟踪对数据所做的所有更改。它还具有诸如 PROMISES 之类的功能,其中 angular 不会等待从数据库中获取真实数据,而只是假设数据应该已经更新到数据库中并只向您显示更改(它实时跟踪)。
身份验证: 整个过程中最令人沮丧的部分是安全地验证用户,即将数据从 angular 传递到 laravel。您必须使用 OAUTH 或 JWT 来验证用户。虽然两者都已经存在了一段时间,但您不会发现任何关于身份验证的好东西 code/guides。我在这里花了很多时间,但你总是可以在 codecanyon 上购买一些自举/正确配置的项目。
套接字是关键: 没有套接字就不可能存在实时系统,您不能只是定期访问数据库以检查更新的值。这里套接字通过通知系统更新可用来挽救这一天,您可以从数据库中获取更新的值。
现在像 pusher 这样的服务已经解决了大部分问题,laravel 还为 pusher 提供了一个内置的 api-client。但是您始终可以自由使用开源软件来创建自己的套接字系统,例如。 socket.io.