Event.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. *
  4. *
  5. * @author walkor <worker-man@qq.com>
  6. *
  7. */
  8. require_once WORKERMAN_ROOT_DIR . 'applications/Game/Store.php';
  9. class Event
  10. {
  11. public static function onConnect($address, $socket_id, $sid)
  12. {
  13. // 检查sid是否合法
  14. $uid = self::getUidBySid($sid);
  15. // 不合法踢掉
  16. if(!$uid)
  17. {
  18. self::kickAddress($address, $socket_id);
  19. return;
  20. }
  21. // 合法记录uid到address的映射
  22. self::storeUidAddress($uid, $address);
  23. // 发送数据包到address,确认connection成功
  24. self::notifyConnectionSuccess($address, $socket_id, $uid);
  25. }
  26. public static function onClose($address, $uid)
  27. {
  28. $buf = new Gamebuffer();
  29. $buf->header['cmd'] = GameBuffer::CMD_GATEWAY;
  30. $buf->header['sub_cmd'] = GameBuffer::SCMD_BROADCAST;
  31. $buf->header['from_uid'] = $uid;
  32. $buf->body = "logout bye!!!";
  33. GameBuffer::sendToAll($buf->getBuffer());
  34. self::deleteUidAddress($uid);
  35. }
  36. public static function kickUid($uid)
  37. {
  38. }
  39. public static function kickAddress($address, $socket_id)
  40. {
  41. }
  42. public static function storeUidAddress($uid, $address)
  43. {
  44. Store::set($uid, $address);
  45. }
  46. public static function getAddressByUid($uid)
  47. {
  48. return Store::get($uid);
  49. }
  50. public static function deleteUidAddress($uid)
  51. {
  52. return Store::delete($uid);
  53. }
  54. protected static function notifyConnectionSuccess($address, $socket_id, $uid)
  55. {
  56. $buf = new GameBuffer();
  57. $buf->header['cmd'] = GameBuffer::CMD_GATEWAY;
  58. $buf->header['sub_cmd'] = GameBuffer::SCMD_CONNECT_SUCCESS;
  59. $buf->header['from_uid'] = $socket_id;
  60. $buf->header['to_uid'] = $uid;
  61. GameBuffer::sendToGateway($address, $buf->getBuffer());
  62. }
  63. protected static function getUidBySid($sid)
  64. {
  65. return $sid;
  66. }
  67. }