GCM服务器是什么

worktile 其他 201

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    GCM(Google Cloud Messaging)服务器是一种由谷歌提供的消息推送服务,旨在帮助开发者向Android设备发送实时通知和消息。它允许开发者将消息推送到Android设备上的应用程序,以便向用户发送重要的更新、提醒或其他通知。

    GCM服务器的工作原理如下:开发者首先需要在他们的Android应用中集成GCM客户端库,并在设备上注册一个唯一的标识符,称为注册令牌。当有新的消息需要发送时,开发者将该消息发送给GCM服务器,服务器负责将这条消息传递给相应的应用程序。

    GCM服务器的功能主要分为以下几个方面:

    1. 设备注册和管理:GCM服务器负责维护设备的注册令牌,并允许开发者管理设备列表。开发者可以通过向GCM服务器发送请求来注册新设备、注销旧设备或更新设备注册令牌。

    2. 消息传递:开发者可以使用GCM服务器向设备发送消息。GCM服务器会将消息传递给相应的应用程序,使用该应用程序的注册令牌进行标识。消息可以是文本消息、数据消息或富媒体通知。

    3. 消息状态和错误处理:GCM服务器负责处理和管理消息的状态和错误。它可以告诉开发者消息的传递状态,例如是否成功传递、是否已被接收等。

    4. 安全认证和授权:GCM服务器通过使用API密钥来确保只有经过授权的开发者才能发送消息。每个开发者都需要在Google开发者控制台上创建一个项目,并生成一个唯一的API密钥。

    总结起来,GCM服务器是一个由谷歌提供的消息推送服务,它使开发者能够向Android设备发送通知和消息。它提供设备注册和管理、消息传递、消息状态和错误处理、安全认证和授权等功能,帮助开发者实现实时通知和消息推送功能。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    GCM服务器是Google云消息传递(Google Cloud Messaging,简称GCM)服务的核心组件之一。GCM是一项由Google提供的云端消息传递服务,它允许开发者将信息从云端发送到Android设备。以下是GCM服务器的基本信息:

    1. 功能:GCM服务器负责接收和处理来自开发者发送的消息,然后将这些消息推送到注册的Android设备上。开发者可以使用GCM服务器来发送通知、数据或命令给用户的设备。

    2. 架构:GCM采用了客户端-服务器架构,其中GCM服务器作为消息的中心处理和分发。开发者需要在自己的应用程序中集成GCM Client SDK,通过与GCM服务器通信来注册设备并接收消息。

    3. 通信协议:GCM服务器使用HTTP或XMPP协议与客户端通信。开发者可以选择使用RESTful HTTP API或XMPP协议来发送消息。

    4. 支持的设备:GCM服务器主要用于向Android设备发送消息,因为GCM是与Android操作系统紧密集成的服务。同时,通过Firebase Cloud Messaging(FCM),GCM也扩展到了iOS设备和Web应用。

    5. 功能扩展:除了消息传递,GCM服务器还提供了其他功能,如设备分组、消息优先级设置、消息持久化、消息传递状态报告和设备管理等。开发者可以使用这些附加功能来更好地管理和控制消息传递过程。

    总之,GCM服务器是Google提供的一种用于向Android设备传递消息的服务,开发者可以通过集成GCM Client SDK并与GCM服务器通信,实现在应用程序中推送通知、数据和命令的功能。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    GCM服务器是Google云消息传递(Google Cloud Messaging)的服务器。GCM是一种用于发送推送通知和消息的云服务,旨在帮助开发人员通过移动应用程序向Android设备发送消息。

    GCM服务器提供了一个可靠的、低延迟的消息传递方式,支持向单个设备或设备群组发送消息。开发人员可以使用GCM API将消息发送到GCM服务器,然后GCM服务器将消息通过云端传递到目标设备。设备接收到消息后,可以在应用程序中处理消息,并根据需要执行相关操作。

    下面将从设置GCM服务器、发送消息到设备以及接收和处理消息等方面详细介绍GCM服务器的操作流程。

    1. 设置GCM服务器

    1. 在Google开发者控制台(https://console.developers.google.com)上创建一个新的项目。在项目设置中,启用GCM API。

    2. 获取GCM服务器的API密钥。在控制台中,转到Credentials页面,并创建一个新的API密钥。将API密钥复制下来,以便在后续步骤中使用。

    3. 在Android项目中添加所需的依赖库。可以在项目的build.gradle文件中添加以下依赖关系:

    dependencies {
        implementation 'com.google.android.gms:play-services-gcm:17.4.0'
    }
    
    1. 在AndroidManifest.xml文件中添加必要的权限和服务声明。在<manifest>标签中添加以下代码:
    <uses-permission android:name="android.permission.INTERNET" />
    <permission android:name="${applicationId}.permission.C2D_MESSAGE" android:protectionLevel="signature" />
    <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
    
    <application ...>
        ...
        <service
            android:name=".MyGcmListenerService"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.android.gms.gcm.ACTION_MESSAGE_RECEIVED" />
            </intent-filter>
        </service>
    
        <receiver
            android:name=".MyGcmReceiver"
            android:exported="true"
            android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <category android:name="${applicationId}" />
            </intent-filter>
        </receiver>
    
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
    </application>
    

    2. 发送消息到设备

    1. 在应用程序中获取GCM注册令牌(Registration Token)。可以在MainActivity的onCreate方法中使用如下代码获取令牌:
    FirebaseInstanceId.getInstance().getInstanceId()
            .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
                @Override
                public void onComplete(@NonNull Task<InstanceIdResult> task) {
                    if (!task.isSuccessful()) {
                        Log.w(TAG, "getInstanceId failed", task.getException());
                        return;
                    }
                    String token = task.getResult().getToken();
                    Log.d(TAG, "token: " + token);
                }
            });
    
    1. 使用GCM服务器的API密钥和设备令牌,将消息发送到GCM服务器。可以使用以下代码发送消息:
    final String SERVER_KEY = "your_server_key";
    final String DEVICE_TOKEN = "device_token";
    
    JSONObject data = new JSONObject();
    data.put("message", "Hello, World!");
    
    JSONObject json = new JSONObject();
    json.put("registration_ids", new JSONArray().put(DEVICE_TOKEN));
    json.put("data", data);
    
    URL url = new URL("https://android.googleapis.com/gcm/send");
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Authorization", "key=" + SERVER_KEY);
    conn.setRequestProperty("Content-Type", "application/json");
    conn.setDoOutput(true);
    
    OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
    writer.write(json.toString());
    writer.flush();
    
    int responseCode = conn.getResponseCode();
    if (responseCode == HttpURLConnection.HTTP_OK) {
        // 发送成功
    }
    

    3. 接收和处理消息

    在应用程序中,可以创建一个继承自FirebaseMessagingService的服务类来处理接收到的消息。可以创建如下代码的MyGcmListenerService类:

    public class MyGcmListenerService extends FirebaseMessagingService {
        private static final String TAG = "MyGcmListenerService";
    
        @Override
        public void onMessageReceived(RemoteMessage remoteMessage) {
            // 处理接收到的消息
            String message = remoteMessage.getData().get("message");
            Log.d(TAG, "Message: " + message);
    
            // 在通知栏中显示消息
            NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
                    .setSmallIcon(R.drawable.ic_notification)
                    .setContentTitle("New Message")
                    .setContentText(message)
                    .setAutoCancel(true);
    
            notificationManager.notify(0, builder.build());
        }
    }
    

    在MyGcmListenerService类中,可以根据接收到的消息执行相关操作。上述代码中,在收到消息后,会在通知栏中显示该消息。

    以上是设置GCM服务器、发送消息到设备以及接收和处理消息的基本操作流程。使用GCM服务器,开发人员可以方便地实现向Android设备发送推送通知和消息的功能。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部