skynet:httpserver 研究

  • skynet.newservice(name),用於創建新服務,會調用服務初始化函數:skynet.start();

  • skynet.call(“服務名”,“lua”,“方法名(函數名)”,參數1、參數2…):向指定服務發送lua類型消息,阻塞函數;

  • skynet.register_protocol{}:將指定的協議記錄到一張表裏面,後續可通過協議名或id找到此協議。相關屬性:

  • name:協議名

  • id:協議ID(若指定PTYPE_SOCKET,則意味着會接收skynet_socket.c中發送的socket事件)

  • pack:發送消息的打包函數

  • unpack:接收消息的拆包函數

  • dispatch:接收消息的(分發)處理函數。(消息類型包括:open(客戶端建立連接)、data(消息分發)、close(客戶端關閉)、error(錯誤))

  • skynet.ret(skynet.pack()):返回命令調用結果,所有通過ret的返回值都要用pack打包;
    5、使用socketdriver建立監聽:
    socket = socketdriver.listen(address, port) #新建socket,綁定監聽地址和端口
    socketdriver.start(socket) #將socket加入epoll

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章