Explorar el Código

add chat worker

walkor hace 12 años
padre
commit
d05b5b41c2
Se han modificado 5 ficheros con 99 adiciones y 1 borrados
  1. 25 0
      Config/main.ini
  2. 1 1
      Workers/BufferWorker.php
  3. 25 0
      Workers/ChatCenter.php
  4. 24 0
      Workers/ChatGateway.php
  5. 24 0
      Workers/ChatWorker.php

+ 25 - 0
Config/main.ini

@@ -10,6 +10,31 @@ ipc_key=0x70010a2e
 ;开启共享内存大小
 shm_size=393216
 
+[ChatCenter]
+socket[protocol] = tcp
+socket[port] = 8181
+socket[persistent] = 1
+children_count = 1
+user = www-data
+preread_length = 3
+
+[ChatGateway]
+socket[protocol] = tcp
+socket[port] = 8282
+socket[persistent] = 1
+children_count = 5
+user = www-data
+preread_length = 3
+inner_port_begin = 10000 
+
+[ChatWorker]
+socket[protocol] = tcp
+socket[port] = 8383
+socket[persistent] = 1
+children_count = 5
+user = www-data
+preread_length = 3
+
 ;监控框架的进程,并提供telnet接口
 [Monitor]
 socket[protocol] = tcp

+ 1 - 1
Workers/BufferWorker.php

@@ -1,7 +1,7 @@
 <?php
 /**
  * 
- * 测worker
+ * 测worker
 * @author walkor <worker-man@qq.com>
  */
 require_once WORKERMAN_ROOT_DIR . 'Core/SocketWorker.php';

+ 25 - 0
Workers/ChatCenter.php

@@ -0,0 +1,25 @@
+<?php
+/**
+ * 
+ * 聊天服务器中心节点 负责
+ * 1、查询用户在线状态
+ * 2、保存用户登录的服务器及通信端口
+ * 3、查询用户连接的服务器及通信端口
+ * 
+ * @author walkor <worker-man@qq.com>
+ * 
+ */
+require_once WORKERMAN_ROOT_DIR . 'Core/SocketWorker.php';
+
+class ChatCenter extends WORKERMAN\Core\SocketWorker
+{
+    public function dealInput($recv_str)
+    {
+        return 0; 
+    }
+
+    public function dealProcess($recv_str)
+    {
+        $this->sendToClient($recv_str);
+    }
+}

+ 24 - 0
Workers/ChatGateway.php

@@ -0,0 +1,24 @@
+<?php
+/**
+ * 
+ * 暴露给客户端的连接网关 只负责网络io
+ * 1、监听客户端连接
+ * 2、监听后端回应并转发回应给前端
+ * 
+ * @author walkor <worker-man@qq.com>
+ * 
+ */
+require_once WORKERMAN_ROOT_DIR . 'Core/SocketWorker.php';
+
+class ChatGateway extends WORKERMAN\Core\SocketWorker
+{
+    public function dealInput($recv_str)
+    {
+        return 0; 
+    }
+
+    public function dealProcess($recv_str)
+    {
+        $this->sendToClient($recv_str);
+    }
+}

+ 24 - 0
Workers/ChatWorker.php

@@ -0,0 +1,24 @@
+<?php
+/**
+ * 
+ * 处理具体聊天逻辑
+ * 1、查询某用户内网通信gateway ip及端口
+ * 2、向某用户对应内网gateway ip及端口发送数据
+ * 
+ * @author walkor <worker-man@qq.com>
+ * 
+ */
+require_once WORKERMAN_ROOT_DIR . 'Core/SocketWorker.php';
+
+class ChatWorker extends WORKERMAN\Core\SocketWorker
+{
+    public function dealInput($recv_str)
+    {
+        return 0; 
+    }
+
+    public function dealProcess($recv_str)
+    {
+        $this->sendToClient($recv_str);
+    }
+}