Event.php 1.5 KB

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