অ্যান্ড্রয়েড এবং এক্সএমপিপি: বর্তমানে উপলব্ধ সমাধান [বন্ধ]


165

আজকাল অ্যান্ড্রয়েড বিকাশের জন্য কোন এক্সএমপিপি লাইব্রেরি সেরা পছন্দ হবে?

  • আমি এখানে প্যাচযুক্ত স্ম্যাক লাইব্রেরিটি ব্যবহার করছি যা এসওতে আরও অনেক প্রশ্নে পরামর্শ দেওয়া হয়েছে। তবে, এটি দুটি বছর আগে থেকে স্ম্যাক এপিআইয়ের একটি প্যাচড সংস্করণ। এবং যদিও এটি সাধারণত ভালভাবে কাজ করে আমি অন্য কোনও, আরও সাম্প্রতিক বিকল্পগুলি অন্বেষণ করছি।

  • আমি অফিশিয়াল স্ম্যাক এপিআইয়ের দিকে নজর রেখেছি এবং কিছুটা গবেষণার পরে মনে হচ্ছে এটি আজকাল ঠিক ঠিক কাজ করতে পারে (যদিও আমি এখনও এটি বাস্তব প্রয়োগে চেষ্টা করে দেখিনি)।

  • এছাড়াও আমি আরও একটি সমাধান পেয়েছি, বীমের এসএমএকেকে পাঠাগার । বীম অ্যান্ড্রয়েডের জন্য মোটামুটি নতুন এক্সএমপিপি ক্লায়েন্ট এবং যা আমি বুঝতে পারি সেগুলি থেকে তারা এসএমএকেকের নিজস্ব প্যাচযুক্ত সংস্করণটি ব্যবহার করছে।

  • অবশেষে, এসএমএকেকে রয়েছে তবে সেটিও বেশ কিছু সময়ের জন্য আপডেট করা হয়নি (যেমন সাইটের প্রস্তাবিত হয়েছে)।

আপনার কাছে অন্য কোনও পরামর্শ আছে বা আপনি কি ব্যাখ্যা করতে পারেন যে আমি কেন বাকীগুলির চেয়ে উপরের একটি বেছে নেব?


2
শেষ পর্যন্ত কী নিয়ে গেলেন? আমি সিদ্ধান্ত নেওয়ার চেষ্টা করছি যে অফিসিয়াল স্ম্যাক ব্যবহার করবেন কিনা?
টম

2
কেবল একটি পিং / নোট, আমি এটি আবার অনুলিপিটির পক্ষে আবার খুলেছি যার কারণে এটি বন্ধ হয়ে গেছে।
টিম পোস্ট

80
আমি মনে করি এই প্রশ্নটি বন্ধ করা একটি বড় ভুল । অ্যান্ড্রয়েডে এক্সএমপিপিতে জড়িত থাকায় আমি বলতে পারি যে "অ্যান্ড্রয়েডে আমি কীভাবে এক্সএমপিপি ব্যবহার করতে পারি?" এই প্রশ্নটি আসে যখন একমাত্র নির্ভরযোগ্য এবং আপ টু ডেট রিসোর্স? পুরো নেট উপর। এটি বন্ধ করে আপনি এসও থেকে একটি উচ্চ মানের মান নেন। এই সমস্যাটি এবং প্রশ্ন ছাড়াই প্রশ্নটি এক বছরেরও বেশি সময় ধরে উন্মুক্ত ছিল যা এই প্রশ্নটির প্রতিলিপি হিসাবে সদৃশ হিসাবে যেখানে বন্ধ ছিল সেখানেই জিজ্ঞাসা করেছিল। এমনকি এটিকে "গঠনমূলক নয়" হিসাবে বন্ধ করার বিষয়টিও আমি দেখতে পাচ্ছি না: এটি একটি বাস্তব বিশ্বের সমস্যার উপর ভিত্তি করে, তথ্য এবং তথ্যসূত্রের সাথে জড়িত। এছাড়াও upvote এবং fav গণনা দেখুন।
ফ্লো

4
@ ক্যাস্পারওন আপনার রোগীর ব্যাখ্যার জন্য ধন্যবাদ। স্ট্যাকওভারফ্লোতে সমস্যাটি এটি আমাকে বুঝতে সহায়তা করে। সম্ভবত আমি এটি মেটাতে তুলে আনব, তবে মনে হয় এটিই সংখ্যাগরিষ্ঠের মতামত এবং ইতিমধ্যে বহুবার আলোচনা হয়েছিল। এটি ঠিক ঠিক অনুভব করে না, বিশেষত যেহেতু এটি বছরের পর বছর ভোটের মাধ্যমে বন্ধ ছিল না।
প্রবাহ করুন

4
"অ্যান্ড্রয়েডে এক্সএমপিপি কীভাবে ব্যবহার করবেন" আমার প্রয়োজন ছাড়াও "ফ্লো" এবং "ক্যাস্পারওন" এর মধ্যে আলোচনা আরও আকর্ষণীয়। আমি এক্সএমপিপি-র জন্য ইন্টারনেটে ঘুরেছিলাম এবং দিনের শেষে আমি এই পোস্টে এখানে এসেছি যা আমাকে গ্রন্থাগারগুলি সম্পর্কে আরও সুনির্দিষ্ট তথ্য সরবরাহ করে যা আমি এক্সপিএমপি-র জন্য ব্যবহার করতে পারি দু'বছর ওপি'র পরেও, আমার পক্ষে অবশ্যই গঠনমূলক এবং শত শত লোকের জন্য হবে চ্যাট অ্যাপ্লিকেশন জন্য নবাগত। "ঘটনাগুলি" "RULES" এর চেয়ে বেশি কথা বলে যে এই প্রশ্নগুলির সমাপ্তির বিষয়ে "FLOW'S" দৃষ্টিকোণটি সঠিক।
পঙ্কজ

উত্তর:


106

সশব্দে আঘাত

স্ম্যাক একটি ওপেন-সোর্স এক্সএমপিপি ক্লায়েন্ট লাইব্রেরি। সংস্করণ ৪.১ থেকে এটি অ্যান্ড্রয়েডে নেটিভভাবে চলে। আরও তথ্যের জন্য "স্মাক ৪.৩ রেডমে" দেখুন এবং রিয়েলটাইম ইগনাইটে স্ম্যাক প্রকল্প পৃষ্ঠাটি দেখুন


8
স্ম্যাক 3.2.0 asmack এ মার্জ করা হয়েছে। GitHub উপর :) শাখা পরীক্ষা করে দেখুন
ফ্লো

সম্পাদিত মন্তব্যগুলি> হাই সমস্ত> আমি আমার এক্সএমপিপি ক্লায়েন্টটি বিকাশের জন্য অ্যাসেম্যাকটি ব্যবহার করছি, আমি একটি সমস্যার মুখোমুখি হচ্ছি> যখন আমি প্রথমবারের লগইন থেকে আসি আমি ব্যবহারকারী বি এর সাথে আমার চ্যাট শুরু করি এবং ব্যবহারকারী বি এর বার্তা প্রাপ্তিও ঠিক আছে i আমি স্যুইচ অফ করছি আমার ওয়াইফাই এবং এটি আবার স্যুইচ করুন তারপরে প্রোগ্রামারিকভাবে আমার জ্যাবার সার্ভারটি পুনরায় সংযুক্ত করুন এবং আবার আমার অ্যাকাউন্টে লগইন করুন, পুনরায় সংযোগের পরে আমি ব্যবহারকারীর বিতে বার্তা প্রেরণ করছি যা ভাল তবে যখন ব্যবহারকারী বি আমাকে আমার বার্তাগুলি প্রেরণ করছে আমার পক্ষের বার্তাগুলি গ্রহণ করছে না I এতে কী সমস্যা আছে তা জানুন knowplz গাইড
আফতাব

হাই ফ্লো> কীভাবে আমরা বিদ্যমান এসম্যাকটি সর্বশেষ স্ম্যাকের সাথে একীভূত করতে পারি? বা এটি যেহেতু আমি সর্বশেষ স্ম্যাক সহ অ্যাসম্যাক ডাউনলোড করতে পারি সেখান থেকে এভায়বল রয়েছে?
আফতাব

@ আফতাব আমার উত্তরে যেমন বলা হয়েছে, অসম্যাক এবং ব্যবহৃত স্ম্যাক শাখাটি গিথুবে পাওয়া যাবে। গিথুব এ README পড়ার বিষয়টি নিশ্চিত করুন।
ফ্লো


6

আমি সম্প্রতি অন্য একটি ওপেন সোর্স সমাধান জুড়ে হোঁচট খেয়েছি : jaxmpp2

jaxmpp2 এছাড়াও অ্যান্ড্রয়েড (এবং জাভা এসই) লক্ষ্য করে। আমি এ সম্পর্কে সত্যই আর কিছু বলতে পারি না, কারণ আমি আমার অ্যান্ড্রয়েড / এক্সএমপিপি প্রকল্পগুলিতে jaxmpp2 ব্যবহার করি না। তবে এটি এসম্যাকের বৈধ বিকল্পের মতো দেখায় ।


1
স্মাক লাইব্রেরি দিয়ে শুরু করার যে কোনও উপায়ে দয়া করে বর্ণনা করতে পারেন .... এটি আমার পক্ষে সম্পূর্ণ নতুন। দয়া করে এমন একটি ব্লগ তৈরি করুন বা এমন কিছু লিবারে_প্রজেক্ট করুন যে সাধারণ মনের অধিকারীরা এই লাইব্রেরিটি সঠিকভাবে বুঝতে পারে।
তুষার পান্ডে


3

অ্যান্ড্রয়েডের জন্য কিউসম্যাক ব্যবহার করুন

https://code.google.com/p/qsmack/downloads/list

এটি অ্যান্ড্রয়েডের জন্য সর্বশেষতম বিল্ড

আমি এক থেকে এক চ্যাট, গ্রুপ চ্যাট, ভিডিও স্থানান্তর, অডিও ট্রান্সফার, শেষবার দেখা, রেজিস্ট্রেশন নম্বর পরিবর্তন ... প্রায় সম্পূর্ণ অ্যাপ্লিকেশনটিতে কাজ করেছি। আমি ওপেনফায়ারে প্রচুর প্লাগইন তৈরি করেছি


@ জসপ্রীত ..... কোনটি এসম্যাক / কিউ স্ম্যাক ব্যবহার করতে হবে।
তুষার পান্ডে

@ জাসপ্রীত ... অ্যান্ড্রয়েডে কিউস্যাম্যাক সংহত করার জন্য কোনও গ্রন্থাগার রজেক্ট
তুষার পান্ডে

এটি সমস্ত চীনা এবং কোনও সহায়তা পাওয়া যায় না।
এজেড_


আপনি যদি এতে কোনও সমস্যার মুখোমুখি হন তবে আমাকে জানান
জসপ্রীত ছাবরা

3

আমি লিবিস্ট্রোফ এবং জনি ব্যবহার করতে চাই। এটি ব্যবহারের লক্ষ্যগুলি ক্রস প্ল্যাটফর্ম, ব্যবহার করা সহজ এবং পারফরম্যান্স। libstrophe সি তে লেখা হয় তাই অ্যান্ড্রয়েড মেকফিল লিখতে সহজ যেহেতু নির্ভরতা কেবল ওপেনসেল এবং এক্সপ্যাট লাইব। আমার ক্ষেত্রে, আমি লিপজিংল থেকে ওপেনসেল এবং এক্সপ্যাট লাইব ব্যবহার করছি যা ইতিমধ্যে অ্যান্ড্রয়েড এবং আইওএসে পোর্ট করে। (কেবল অ্যান্ড্রয়েড মেকফিল বা আইওএস প্রকল্পে জিপ ফাইল পোর্ট করতে হবে)।

নীচে আমার অ্যান্ড্রয়েড মেকফিল রয়েছে



    LOCAL_PATH:= $(call my-dir)/../../libstrophe-0.8.7

    SSL_PROJECT_PATH := openssl/libs/android

    include $(CLEAR_VARS)

    LOCAL_MODULE := openssl

    OPENSSL_LIB_NAME := lib$(LOCAL_MODULE).a

    LOCAL_CFLAGS := -DL_ENDIAN \
        -DOPENSSL_THREADS \
        -DPURIFY \
        -DTERMIO \
        -D_REENTRANT \
        -DOPENSSL_NO_HW \
        -DOPENSSL_NO_GOST \
        -DOPENSSL_NO_DTLS1 \
        -DOPENSSL_NO_RDRAND \
        -DOPENSSL_NO_RSAX \
        -Wall -pipe -fno-exceptions -fno-rtti -fstrict-aliasing -mfpu=neon -mfloat-abi=softfp


    OPENSSL_PATH := openssl/openssl
    OPENSSL_PATH_INC := $(LOCAL_PATH)/openssl/openssl

    LOCAL_C_INCLUDES := \
        $(OPENSSL_PATH_INC) \
        $(OPENSSL_PATH_INC)/include \
        $(OPENSSL_PATH_INC)/crypto \
        $(OPENSSL_PATH_INC)/crypto/asn1 \
        $(OPENSSL_PATH_INC)/crypto/evp \
        $(OPENSSL_PATH_INC)/crypto/modes \
        $(LOCAL_PATH)/openssl/config/android \
        $(LOCAL_PATH)/openssl

    LOCAL_ARM_MODE := arm
    LOCAL_CFLAGS += $(LOCAL_C_INCLUDES:%=-I%) -O3 -DANDROID_NDK


    LOCAL_SRC_FILES := \
        // here is openssl file which is defined in gyp

    LOCAL_SHORT_COMMANDS := true

    include $(BUILD_SHARED_LIBRARY)


    include $(CLEAR_VARS)

    STROPHE_PATH := $(LOCAL_PATH)
    EXPAT := expat-2.1.0
    OPENSSL_PATH := openssl/openssl
    OPENSSL_PATH_INC := $(LOCAL_PATH)/openssl/openssl


    EXPAT_SRC_FILES := \
        $(EXPAT)/lib/xmlparse.c \
        $(EXPAT)/lib/xmlrole.c \
        $(EXPAT)/lib/xmltok.c

    COMMON_CFLAGS := \
        -Wall \
        -Wmissing-prototypes -Wstrict-prototypes \
        -Wno-unused-parameter -Wno-missing-field-initializers \
        -fexceptions \
        -DHAVE_EXPAT_CONFIG_H \
        -DLOGGING -DANDROID \



    COMMON_C_INCLUDES += \
        $(LOCAL_PATH)/$(EXPAT)/lib \
        $(STROPHE_PATH) \
        $(STROPHE_PATH)/src \
        $(OPENSSL_PATH_INC) \
        $(OPENSSL_PATH_INC)/include \
        $(OPENSSL_PATH_INC)/crypto \
        $(OPENSSL_PATH_INC)/crypto/asn1 \
        $(OPENSSL_PATH_INC)/crypto/evp \
        $(OPENSSL_PATH_INC)/crypto/modes \
        $(LOCAL_PATH)/openssl/config/android \
        $(LOCAL_PATH)/openssl \
        ../android/jni


    STROPHE_SRC_FILES := src/auth.c \
        src/conn.c \
        src/ctx.c \
        src/event.c \
        src/handler.c \
        src/hash.c \
        src/jid.c \
        src/md5.c \
        src/sasl.c \
        src/scram.c \
        src/sha1.c \
        src/snprintf.c \
        src/sock.c \
        src/stanza.c \
        src/thread.c \
        src/tls_openssl.c \
        src/util.c \
        src/parser_expat.c \
        src/message.c \
        src/presence.c \
        src/roster.c


    JNI_SRC_FILES := ../android/jni/strophe-jni.c

    ifeq ($(TARGET_ARCH),arm)
        LOCAL_SDK_VERSION := 8
    else
        LOCAL_SDK_VERSION := 9
    endif

    LOCAL_ARM_MODE := arm
    LOCAL_SHORT_COMMANDS := true
    LOCAL_SYSTEM_SHARED_LIBRARIES := libc
    LOCAL_SHARED_LIBRARIES := openssl

    LOCAL_SRC_FILES := $(EXPAT_SRC_FILES)
    LOCAL_SRC_FILES += $(STROPHE_SRC_FILES)
    LOCAL_SRC_FILES += $(JNI_SRC_FILES)

    LOCAL_CFLAGS += $(COMMON_CFLAGS)
    LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
    LOCAL_CFLAGS += $(LOCAL_C_INCLUDES:%=-I%) -O3 -DANDROID_NDK
    LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES)


    LOCAL_MODULE:= libnativeclient
    LOCAL_MODULE_TAGS := optional

    include $(BUILD_SHARED_LIBRARY)



1

আপনি টিগ্যাস জাএক্সএমপিপি ক্লায়েন্ট লাইব্রেরিটি ব্যবহার করতে পারেন - এটি অত্যন্ত বহুমুখী এবং আপনি এটি জাভাএসই অ্যাপ্লিকেশনগুলির পাশাপাশি আপনার অ্যান্ড্রয়েড বিকাশের জন্যও ব্যবহার করতে পারেন। এটি সক্রিয়ভাবে বিকশিত হয়েছে এবং অ্যান্ড্রয়েডের জন্য টিগ্যাস মেসেঞ্জার ( প্লে স্টোর) ) এর উপর ভিত্তি করে।

বেশ কয়েকটি উদাহরণ সহ একটি বেসিক লাইব্রেরি ডকুমেন্টেশন উইকি পৃষ্ঠা রয়েছে এবং বিশদগুলির জন্য আপনার জাভাদোকগুলি উল্লেখ করা উচিত


0

ব্যবহার স্ম্যাক 4.1 রিডমি এবং আপগ্রেড গাইড

অ্যান্ড্রয়েড স্টুডিও ২.৩ ব্যবহার করে, সম্প্রতি আমি খুব সাধারণ উপায়ে একটি ডেমো প্রয়োগ করেছি।

-> নীচে অ্যাপ্লিকেশন স্তরের গ্রেডে কেবল গ্রেড নির্ভরতা যুক্ত করুন

compile "org.igniterealtime.smack:smack-tcp:4.1.0"

// Optional for XMPPTCPConnection

compile "org.igniterealtime.smack:smack-android-extensions:4.1.0"

-> সংযোগ কনফিগারেশন কনফিগার করুন
নোট : এ্যাসিঙ্কটাস্কে বা অন্যান্য পটভূমির থ্রেডে এটিকে কল করুন

 XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
                    .setUsernameAndPassword("Your Username here", "Your Password here")
                    .setHost("Host name here")
                    .setServiceName("Your service name here")
                    .setPort(Your port number here)
                    .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled) //Disable or enable as per development mode
                    .setDebuggerEnabled(true) // to view what's happening in detail
                    .build();

-> ব্যবহার করুন isConnected()এবং isAuthenticated()

-> ChatManagerঅ্যাড ব্যবহার করুন chatListener


0

আপনি বিনামূল্যে কুইকব্লক্স 1 ব্যবহার করতে পারেন।

এটি বক্সের বাইরে এক্সএমপিপি সার্ভারকে প্রচুর বৈশিষ্ট্য সরবরাহ করে, আপনি সেখানে বৈশিষ্ট্যগুলি সম্পর্কে পড়তে পারেন http://quickblox.com/developers/Chat

এখানে কীভাবে একটি স্ম্যাক লাইব্রেরি দিয়ে কুইকব্লক্স ব্যবহার শুরু করা যায় তার একটি উদাহরণ এখানে দেওয়া হয়েছে http://quickblox.com

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.