Prosody.im

ช่วงหลายวันก่อนเกิดความหงุดหงิด MSN bot ที่ตัวเองเขียนขึ้นมาเพื่อ relay message ไปให้ทุกคนในกลุ่มแทน groups.im แต่ปรากฏว่า message มักหายไปแบบเงียบๆ เพราะเหตุผลอะไรบางอย่างที่ไม่ได้แกะใน Java source เลยคิดจะตั้ง Jabber Server ขึ้นมาใหม่เพื่อทำหน้าที่นี้แทนโดยเฉพาะเลย

Jabber Server ที่มีให้เลือกตอนนี้ดังๆ ก็มีอยู่สองสามเจ้าคือ jabberd, ejabber, openfire,… ที่เคยใช้มาแล้วคือ openfire แล้วพบว่าตัวมันใหญ่มาก แม้จะมี feature มากที่สุด หน้าตาสวยงามที่สุดก็ตาม ตัวเลือกอื่นๆ ก็แก้ไขยาก สุดท้ายเลยได้หัด Lua เล่น Prosody

สิ่งที่ต้องทำเพิ่มขึ้นมาคือ ส่วนที่ให้ Prosody ไปหา User จาก WordPress นั่งแก้ไปมาตั้งนาน จนเขียน Lua พอเป็นพบว่า Lua เป็นภาษาที่เหมือน Javascript มากไม่ยากแก่การศึกษา ทำ Module เสร็จก็ถึงเวลา config ให้ Prosody ทำงาน

  1. Prosody รุ่นที่ใช้เป็นตัวที่อยู่ใน Repository ที่ยังไม่ออก (ถ้าเอารุ่นที่ออกล่าสุดมาใช้มันต้องแก้ UserManager ตรงๆ ไม่น่าทำอย่างยิ่ง) Clone มันออกมาไว้ซักที่
  2. จากนั้นสั่ง ./configure ostype=debian (หรือแล้วแต่ OS ที่จะใช้) แล้วส่ัง make
  3. Copy prosody.cfg.lua.dist ออกมาเป็น prosody.cfg.lua จากนั้นเพิ่ม VirtualHost โดเมนที่เราจะใช้เข้าไปพร้อมกำหนด Authenticator

    VirtualHost "sample.com"
      authentication = "wordpress"
      wordpress_mysql_host = "database.host"
      wordpress_mysql_username = "username"
      wordpress_mysql_password = "password"
      wordpress_mysql_database = "wordpress"
    
  4. สั่ง prosody จากนั้นก็ใช้ Adium/iChat หรือ Jabber client ต่อเข้าไปดู

สิ่งที่ทำเพิ่มต่อจากนี้จริงๆ ก็มีพวกใส่ plugins เพิ่ม กับเพิ่ม gateway เขียนบอทเพิ่มอีกนิดหน่อยก็สมบูรณ์หละ

About llun

Just a programmer

, , ,