int main(){ signal(SIGPIPE,SIG_IGN); p = kn_new_engine(); if(0 != kn_redisAsynConnect(p,"127.0.0.1",6379,cb_redis_connect,cb_redis_disconnected,NULL)){ printf("kn_redisAsynConnect failed\n"); return 0; } kn_reg_timer(p,1000,timer_callback,NULL); kn_engine_run(p); return 0; }
int lua_redis_connect(lua_State *L){ const char *ip = lua_tostring(L,1); uint16_t port = (uint16_t)lua_tointeger(L,2); luaRef_t *cbObj = calloc(1,sizeof(*cbObj)); *cbObj = toluaRef(L,3); int ret = kn_redisAsynConnect(g_engine,ip,port,cb_connect,cb_disconnected,(void*)cbObj); if(ret != 0){ release_luaRef(cbObj); free(cbObj); lua_pushstring(L,"connect to redis error"); }else lua_pushnil(L); return 1; }