我正在使用 Laravel 构建一个帮助用户找到服务提供商的应用程序。将有 2 个应用程序,例如 Uber,1 个供用户使用,1 个供提供商使用。用户将提出请求,根据请求,选定的提供者将收到通知。就像优步一样。
问题是,我应该如何设计这个。我想到了什么:
2 个应用程序: 有 2 个具有公共(public)数据库的 Laravel 应用程序。但是当用户生成请求时,我如何通知提供者呢?只有 DB 发生了变化,那么如何告诉 Provider App User App 生成了请求?
单应用 2 前端: 有一个 Laravel 应用程序和 2 个前端。 Play 商店将有单独的应用程序,但只有一个服务器应用程序。我该怎么做?
这种方法有更好的解决方案吗?优步如何做到这一点?
最佳答案
我建议您应该使用给定的服务,例如 PubNub (see Demos) .
这样你可以节省你的服务器开发,还有一个Android-Example 您可以像这样在您的 APP 中简单地使用它:
dependencies {
....
compile 'com.pubnub:pubnub:3.7.4'
//'com.pubnub:pubnub-android-debug:3.7.+' For the debug version
}
和
import com.pubnub.api.*;
import org.json.*;
Pubnub pubnub = new Pubnub("demo", "demo");
try {
pubnub.subscribe("my_channel", new Callback() {
@Override
public void connectCallback(String channel, Object message) {
pubnub.publish("my_channel", "Hello from the PubNub Java SDK", new Callback() {});
}
@Override
public void disconnectCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : DISCONNECT on channel:" + channel
+ " : " + message.getClass() + " : "
+ message.toString());
}
public void reconnectCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : RECONNECT on channel:" + channel
+ " : " + message.getClass() + " : "
+ message.toString());
}
@Override
public void successCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : " + channel + " : "
+ message.getClass() + " : " + message.toString());
}
@Override
public void errorCallback(String channel, PubnubError error) {
System.out.println("SUBSCRIBE : ERROR on channel " + channel
+ " : " + error.toString());
}
}
);
} catch (PubnubException e) {
System.out.println(e.toString());
}
如果您想了解 Uber 是如何做到这一点的,请查看教程“The PubNub Connected Car Solution Kit”
所以我希望我能回答一下,Uber 是如何做到这一点的,以及如何让它变得更好:-)
关于php - Laravel 消费者和提供者应用架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31261533/