diff --git a/c_wrapper/export.go b/c_wrapper/export.go index ca3209a..d1cee02 100644 --- a/c_wrapper/export.go +++ b/c_wrapper/export.go @@ -142,8 +142,7 @@ type BatchMessageCallback struct { } func (b BatchMessageCallback) OnRecvNewMessages(messageList string) { - //TODO implement me - panic("implement me") + C.Call_CB_I_S(b.cCallback, RECV_NEW_MESSAGES, C.CString(messageList)) } func (b BatchMessageCallback) OnRecvOfflineNewMessages(messageList string) { @@ -417,7 +416,9 @@ func get_login_user() *C.char { //export create_text_message func create_text_message(operationID, text *C.char) *C.char { - return C.CString(open_im_sdk.CreateTextMessage(C.GoString(operationID), C.GoString(text))) + message:=C.CString(open_im_sdk.CreateTextMessage(C.GoString(operationID), C.GoString(text))) + defer FreeCString(message) + return message } //export create_advanced_text_message diff --git a/c_wrapper/test.c b/c_wrapper/test.c index 9b75e4f..614a9d3 100644 --- a/c_wrapper/test.c +++ b/c_wrapper/test.c @@ -22,6 +22,14 @@ void c_conn_callback(int event, char *data) printf("C c_conn_callback receive from Go callbck code: %d,data: %s\n", event,data); } +void c_conversation_callback(int event, char *data) +{ + printf("C c_conversation_callback receive from Go callbck code: %d,data: %s\n", event, data); +} +void c_message_callback(int event, char *data) +{ + printf("C c_message_callback receive from Go callbck code: %d,data: %s\n", event, data); +} void c_base_callback(char * operationID ,int errCode,char * errMsg,char *data) { printf("C c_base_callback operationID: %s receive from Go callbck code: %d, errMsg: %s, data: %s\n", operationID, errCode, errMsg, data); @@ -32,17 +40,20 @@ int main(int argc, char **argv) // char uid[] = "6959062403"; char uid[] = "4365007572"; // char token[] = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySUQiOiI2OTU5MDYyNDAzIiwiUGxhdGZvcm1JRCI6MywiZXhwIjoxNzAwNzIwOTg0LCJuYmYiOjE2OTI5NDQ2ODQsImlhdCI6MTY5Mjk0NDk4NH0.8otKTFrOCs8_ueV10rNOD-rzHrCT_EN0obKS9q79bIc"; - char token[] = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySUQiOiI0MzY1MDA3NTcyIiwiUGxhdGZvcm1JRCI6MywiZXhwIjoxNzAxNzYzODQ1LCJuYmYiOjE2OTM5ODc1NDUsImlhdCI6MTY5Mzk4Nzg0NX0.wK4f-R_iuyX7i6gelO2_smob50bdR_2s6FnMvb3xA6U"; + char token[] = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySUQiOiI0MzY1MDA3NTcyIiwiUGxhdGZvcm1JRCI6MiwiZXhwIjoxNzAyNjk4NTkzLCJuYmYiOjE2OTQ5MjIyOTMsImlhdCI6MTY5NDkyMjU5M30.2Bp8lMgIWXZdPp4J_BWGqJ14gQqiHxGiICxfxrgAq-A"; - char *jsonString = "{\"platformID\": 3, \"apiAddr\": \"http://125.124.195.201:10002\", \"wsAddr\":\"ws://125.124.195.201:10001\",\"dataDir\": \"./\", \"logLevel\": 1, \"isLogStandardOutput\": true, \"logFilePath\": \"./\", \"isExternalExtensions\": true}"; + char *jsonString = "{\"platformID\": 2, \"apiAddr\": \"http://125.124.195.201:10002\", \"wsAddr\":\"ws://125.124.195.201:10001\",\"dataDir\": \"./\", \"logLevel\": 5, \"isLogStandardOutput\": true, \"logFilePath\": \"./\", \"isExternalExtensions\": true}"; GoUint8 init_result; init_result = init_sdk(c_conn_callback,operationID, jsonString); printf("init_result: %u\n", init_result); + login(c_base_callback, operationID, uid, token); sleep(10); -// char text[] = "哈哈"; + set_conversation_listener(c_conversation_callback); + set_advanced_msg_listener(c_message_callback); + // char text[] = "哈哈"; char* loginUserID=get_login_user(); printf("return :%s\n",loginUserID);