给docker运行总的容器添加端口

docker运行中的服务映射端口

docker inspect -f='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' [容器name] 获取容器的IP

iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000 IP是有上面一步查出来的、将外部端口8001映射到容器端口8000

iptables -nL 查看端口映射情况

但自己操作后、通过命令查看并没法发现端口映射成功

相关资料

查看docker的端口映射情况
Docker inspect 命令
Docker 给运行中的容器设置端口映射的方法

长连接使用前需解决的问题

长连接、swoole、easyswoole

  • 部署安装
  • websocket、socket、mqtt服务部署及联调
  • 不同协议中的交互 硬件使用mqtt、APP使用socket
  • 每次传输的数据如何转入到对应的逻辑方法处理(http中每个URL可以对应到指定的方法)
  • 传输数据可用的数据类型有几种(二进制、json)
  • 连接认证、数据加密
  • 多进程、多线程、协程
  • 分布式部署

easyswoole

官方安装文档

安装部分

本次使用的docker安装部署、官方已给出dockerfile、但注释了 Install easyswoole下面的三行、在build的时候先不安装

build好后启动并进入镜像安装easyswoole. composer require easyswoole/easyswoole=3.x-dev

{
    # composer require  的时候不会出现下面autoload部分需要自己添加后执行 composer dumpautoload 更新命名空间映射
    "autoload": {
        "psr-4": {
            "App\\": "App/"
        }
    },
    "require": {
        "easyswoole/easyswoole": "3.x-dev"
    }
}

如果出现下面代码、并检查路径及文件名都正确的话在检查composer.json中autoload空间映射是否正确.

[Uncaught Error: Class 'App\WebSocket\WebSocketParser' not found in /var/www/code/EasySwooleEvent.php:37

websocket服务调试

websocket部署测试-官方例子

服务端使用官方文档例子, websocket客户端使用 在线调试

{"action":"hello","content":"easyswoole"} 发送的json字符串, 如果json字符不规范可以f12打开Console然后使用JSON.stringify({action: 'hello', content: 'easyswoole'})

手动部署

swoole 部署错误

需手动安装包: composer require easyswoole/socket

laravel-跨域解决

Laravel API接口跨域访问 “Access-Control-Allow-Origin”

step1-创建中间件

创建文件app/Http/Middleware/CORS.php, 将下面代码复制到文件中.

<?php
namespace App\Http\Middleware;
use Closure;

class CORS
{
    public function handle($request, Closure $next)
    {
        return $next($request)->header('Access-Control-Allow-Origin', '*')
            ->header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE')
            ->header('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization,X-Requested-With');
    }
}

step2-注册中间件路由

打开文件: \app\Http\Kernel.php, 找到 protected $middleware 然后增加\App\Http\Middleware\CORS::class,

protected $middleware = [
    ...
    \App\Http\Middleware\CORS::class, //跨域访问中间件
    ...
];

相关资料

Laravel API接口跨域访问

安卓环境搭建

windows android 环境配置

步骤

  1. 安装JDK
  2. 配置环境(JDk)
  3. 安装androidt studio

具体安装操作

  1. 下载安装-JDK 需要登陆下载
  2. 电脑—属性—高级系统设置—环境变量—系统变量 环境名 JAVA_HOME 环境值 D:\Program Files (x86)\Java\jdk1.8.0_211 path %JAVA_HOME%\bin Tip: AVD保存位置 ANDROID_SDK_HOME D:\Android\AndroidStudio 详细看 Android Studio中AVD安装路径
  3. 安装androidt studio

相关资料

Android 环境搭建与第一个程序
Android 环境搭建
开发环境搭建教程

mysql-无法连接

mysql 安装后无法连接数据库 mysql安装 mysql初始化

mysql-5.8

错误提示: The server requested authentication method unknown to the client

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

mysql-5.6

错误提示: 1045 access denied for user 'root'@'localhost' using password yes

mysql -uroot tip: 不要加p可以直接进入mysql系统
grant all privileges on *.* to root@'localhost' identified by 'root';
grant all privileges on *.* to root@'%' identified by 'root';
flush privileges;

相关资料

mysql-5.6-无法连接数据库
mysql-5.8-无法连接数据库