public function ajax() { //判断Socket模块是否加载 if (!extension_loaded('sockets')) { die('php sockets extension not loaded!'); } //判断websocket服务器是否已运行, 没有运行则执行下面的代码创建, 防止重复创建websocket if (!add_lock('welive')) { die('WEBSOCKET server is running ...'); } // socket接受或发送的最大数据限制(字节) 128K define('WEBSOCKET_MAX', 1024 * 128); // 最大连接数(设置大些, 可能有仅连接不传送信息的非法连接, 无法关闭) define('WEBSOCKET_ONLINE', 2048); // 屏蔽错误代码 error_reporting(0); // 设置超时时间 @set_time_limit(0); @ignore_user_abort(true); //忽略用户断开连接, 服务器脚本仍运行 // 设置当前脚本可使用的最大内存, 默认为1024M, 同时连接人数太多时,可能不够 @ini_set('memory_limit', '1024M'); $websocket = new Websocket(WS_HOST, WS_PORT); $websocket->domain = ''; //允许的域名 $websocket->run(); echo socket_strerror($websocket->error()); }
<?php // 声明 include 目录常量 define('DIR_WEBSOCKET', dirname(__FILE__)); require DIR_WEBSOCKET . '/config.php'; require DIR_WEBSOCKET . '/function.php'; require DIR_WEBSOCKET . '/class/class_websocket.php'; if (!add_lock('lock')) { die('Running'); } // 屏蔽错误代码 //error_reporting(0); // 设置超时时间 ignore_user_abort(true); set_time_limit(0); // 修改内存 ini_set('memory_limit', WEBSOCKET_MEMORY); $class_websocket = new class_websocket(WEBSOCKET_HOST, WEBSOCKET_PORT); $class_websocket->key = WEBSOCKET_KEY; $class_websocket->domain = WEBSOCKET_DOMAIN; $class_websocket->function['add'] = 'add_socket_call'; $class_websocket->function['get'] = 'get_socket_call'; $class_websocket->function['close'] = 'close_socket_call'; $class_websocket->run(); echo socket_strerror($class_websocket->error()); /** * 添加的时候 * * 回调函数请勿直接使用 **/ function add_socket_call($accept, $index, $class)