gpt4 book ai didi

php - 实现网页与android的聊天

转载 作者:太空宇宙 更新时间:2023-11-03 12:54:37 25 4
gpt4 key购买 nike

这是我的情况。我有一个聊天室网站。人们在一起公开聊天,每个人都看到谁在写什么。所有聊天记录都存储在数据库(mysql)中

现在我想在 Android 上实现这个聊天功能。因此,当用户从他的手机发送文本时,它应该发送到聊天室网站,反之亦然,这意味着 Android 用户应该看到从聊天网页发送的所有文本。

结果:

1: Android 用户应该看到人们通过网页发送的所有文本,2:Android 用户应该能够向这个聊天室网页发送文本(这样使用该网页聊天的其他用户应该可以看到他的文本)。

最大的问题是,实现这一目标的最佳方法是什么?

这个过程可以像 XMPP 一样实时发生吗?

GCM 是唯一的方法吗(虽然不是实时的)?

如果我使用网络服务将消息发送到网络,我如何为传入消息设置监听器?

不知道我说的对不对。任何帮助表示赞赏。只要给出字符串的头部我就会走到最后...

编辑:一个服务器端问题:当 MYSQL 中的特定表发生更改时(例如,当添加新行时),有没有办法让服务器执行某些操作?

最佳答案

我首先想到的是,这非常适合Pub/Sub 范式。客户端向特定 channel (房间)发布聊天消息并订阅 channel ;服务器订阅一个 channel 并将数据存储在 MySQL 数据库中。

您可以尝试使用像 PubNub 这样的外部实时网络。 PubNub 对于最多 1m 条消息是免费的(参见 pricing page 。)他们有一个 Android SDKPHP SDK (由于使用了 PHP 标记,我假设您在服务器上使用 PHP。)

就您而言,在您的 Android 客户端中,您将订阅一个 channel :

Pubnub pubnub = new Pubnub("demo", "demo");

try {
pubnub.subscribe("my_channel", new Callback() {
//See full example for all Callback methods
@Override
public void successCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : " + channel + " : "
+ message.getClass() + " : " + message.toString());
}
}
} catch (PubnubException e) {
System.out.println(e.toString());
}

( Full example here. ) 然后,当您要发布消息时:

Callback callback = new Callback() {
public void successCallback(String channel, Object response) {
Log.d("PUBNUB",response.toString());
}
public void errorCallback(String channel, PubnubError error) {
Log.d("PUBNUB",error.toString());
}
};
pubnub.publish("my_channel", "This is an important chat message!" , callback);

整洁!但是您的服务器呢,它如何接收这些消息?

$pubnub = new Pubnub(
"demo", ## PUBLISH_KEY
"demo", ## SUBSCRIBE_KEY
"", ## SECRET_KEY
false ## SSL_ON?
);

$pubnub->subscribe(array(
'channel' => 'my_channel', ## REQUIRED Channel to Listen
'callback' => function($message) { ## REQUIRED Callback With Response
## Time to log this to MySQL!
return true; ## Keep listening (return false to stop)
}
));

希望这对您的项目有所帮助。让我知道进展如何。

关于php - 实现网页与android的聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22995585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com