<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[avsys_z的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/avsys_z</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; avsys_z]]></copyright><item><title><![CDATA[樱花内网穿透]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/138580799</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/138580799</guid><author>avsys_z</author><pubDate>Wed, 08 May 2024 20:58:55 +0800</pubDate><description><![CDATA[方便远程家里的虚拟机。]]></description><category></category></item><item><title><![CDATA[pomelo socket连接bug]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/109070093</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/109070093</guid><author>avsys_z</author><pubDate>Wed, 14 Oct 2020 12:38:43 +0800</pubDate><description><![CDATA[记录一下，自身在debug时发现的问题

pomelo\lib\components\connector.js

源码：


var bindEvents = function(self, socket) {
  var curServer = self.app.getCurServer();
  var maxConnections = curServer['max-connections'];
  if (self.connection &amp;&amp; maxConnections) {
    ]]></description><category></category></item><item><title><![CDATA[crontab环境变量问题导致执行nodejs脚本不生效]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/108008456</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/108008456</guid><author>avsys_z</author><pubDate>Fri, 14 Aug 2020 16:48:57 +0800</pubDate><description><![CDATA[需求：每天23点59分 统计一次全服玩家登录信息

59 23 * * * source /etc/profile &amp;&amp; /opt/nodejs/node-v8.1.4-linux-x64/bin/node /home/service/game-server/app/util/find_db/query_player_info.js


source /etc/profile &amp;&amp; /opt/nodejs/node-v8.1.4-linux-x64/bin/node   加.]]></description><category></category></item><item><title><![CDATA[pomelo分布式部署记录]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/107919226</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/107919226</guid><author>avsys_z</author><pubDate>Mon, 10 Aug 2020 18:34:06 +0800</pubDate><description><![CDATA[所有参与分布式部署的机器:
必须为同类操作系统
必须都有一个同名的用户
Node.js的安装版本必须完全相同, 安装的绝对路径也必须完全相同
在所有参与分布式部署的机器上配置ssh免密登录使得各个机器之间可以进行顺畅的ssh登录.
把域名绑到负载均衡服务器上




{
  "development":{
    "gate": [
      {"id": "gate-test-1", "host": "192.168.0.5", "clientPort": 11001, "port": 11002, .]]></description><category></category></item><item><title><![CDATA[async 异步循环]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/107918411</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/107918411</guid><author>avsys_z</author><pubDate>Mon, 10 Aug 2020 18:01:54 +0800</pubDate><description><![CDATA[async 异步循环




let async = require('async');

let arr  = [
    {id: 1, age: 2},
    {id: 2, age: 3}, 
    {id: 3, age: 4}
];

function print(obj, cb) {
	if(obj.id === 2) {
		cb("it's a err")
	}else {
		console.log("print -&gt;" + obj.id);
		cb(null)
	}
}
.]]></description><category></category></item><item><title><![CDATA[解决github图片不显示的问题]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/107789541</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/107789541</guid><author>avsys_z</author><pubDate>Tue, 04 Aug 2020 16:22:06 +0800</pubDate><description><![CDATA[修改hosts
C:\Windows\System32\drivers\etc\hosts

在文件的末尾添加:

# GitHub Start 
192.30.253.112    Build software better, together 
192.30.253.119    gist.github.com
151.101.184.133    assets-cdn.github.com
151.101.184.133    raw.githubusercontent.com
151.101.18.]]></description><category></category></item><item><title><![CDATA[pomelo支持wss]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/107415193</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/107415193</guid><author>avsys_z</author><pubDate>Fri, 17 Jul 2020 18:40:18 +0800</pubDate><description><![CDATA[pomelo原生是支持wss，我们只需要配置一下就好了~

1.在app.js同级的目录下面，创建一个key目录，将下载ssl证书xxx.key和xxx.crt放到这个目录

2.打开app.js，找到所有有connectorConfig的配置，增加下面内容


app.set('connectorConfig', {
        connector : pomelo.connectors.hybridconnector,
        useProtobuf : t...]]></description><category></category></item><item><title><![CDATA[js 对象排序]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/102456159</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/102456159</guid><author>avsys_z</author><pubDate>Wed, 09 Oct 2019 10:54:37 +0800</pubDate><description><![CDATA[let a = [
    {id:5, level: 1},
    {id:1, level: 4},
    {id:4, level: 5},
    {id:3, level: 2},
    {id:2, level: 3}
]

function objSort(obj1, obj2) {
    if(obj1.id !== obj2.id) {
        if(obj1....]]></description><category></category></item><item><title><![CDATA[js 判断一个对象是否为空]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/102455581</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/102455581</guid><author>avsys_z</author><pubDate>Wed, 09 Oct 2019 10:34:38 +0800</pubDate><description><![CDATA[function isEmpty_1(obj) {
    for(let key in obj ) {
        return false;
    }
    return true;
}

function isEmpty_2(obj) {
    if(JSON.stringify(obj) === "{}") {
        return true;
    }
    re...]]></description><category></category></item><item><title><![CDATA[js 获取n至m随机整数]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/102455165</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/102455165</guid><author>avsys_z</author><pubDate>Wed, 09 Oct 2019 10:21:33 +0800</pubDate><description><![CDATA[function random(n, m) {
    let tmp = m - n + 1;
    return Math.floor(Math.random() * tmp + n); 
}

let n = 2;   
let m = 10;
console.log(random(n, m));


]]></description><category></category></item><item><title><![CDATA[js 字母和数字之间互转]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/99462798</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/99462798</guid><author>avsys_z</author><pubDate>Tue, 13 Aug 2019 19:07:26 +0800</pubDate><description><![CDATA[1.字符转ascii码：charCodeAt();

2.ascii码转字符：fromCharCode();




let str = "B";
let num = 66;

console.log(str.charCodeAt());           // 66
console.log(String.fromCharCode(num));   // B



...]]></description><category></category></item><item><title><![CDATA[js 随机打乱一个数组]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/99305583</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/99305583</guid><author>avsys_z</author><pubDate>Mon, 12 Aug 2019 15:56:14 +0800</pubDate><description><![CDATA[function randomArr(arr) {
    let len = arr.length;
    while (len) {
        let i = Math.floor(Math.random() * len--);
        [arr[i], arr[len]] = [arr[len], arr[i]];
    }
    return arr;
}

let ...]]></description><category></category></item><item><title><![CDATA[Ubuntu Nginx+Rtmp服务器搭建 （图文演示）]]></title><link>https://blog.youkuaiyun.com/avsys_z/article/details/79569279</link><guid>https://blog.youkuaiyun.com/avsys_z/article/details/79569279</guid><author>avsys_z</author><pubDate>Thu, 15 Mar 2018 16:09:53 +0800</pubDate><description><![CDATA[在 ubuntu 16.04 安装流程

在root权限下按以下步骤进行（本次用的Nginx不是最新的，最新的版本可自行到官网下载）
1.先下载安装 nginx 和nginx-rtmp 编译依赖工具

apt-get install build-essential libpcre3 libpcre3-dev libssl-dev



2. mkdir一个工作目录，并cd到工作目录
mkdir ...]]></description><category></category></item></channel></rss>