0%

个人简单试了下用erlang自带的ssh模块远程登录

调用命令:

1
my_ssh:exec("192.168.6.77", 22, [{user, "root"}, {password, "123456"}], "export LANG=en.UTF-8 && ls -l").
阅读全文 »

一个项目的开发可能涉及若干种语言,前端、后端、后台都有不同的适合的语言,比如在游戏中,前端用C+Lua,后端用Erlang,后台用PHP,不同语言直接的通信就成了一个比较棘手的问题,下面简单讨论几组可能的实现方式:

Socket

基于自定义协议的Socket请求

前端(或者后台)与后端约定好协议格式,以协议的方式通信。

基于HTTP的请求

后端架设一个HTTP服务器,前端(或者后台)通过HTTP请求将需要执行的命令以参数的形式传递给后端。

SSH

Erlang开启SSH服务器,前端(或者后台)通过插件SSH登录到Erlang服务器,执行命令。

1
2
3
Eshell V5.10.4  (abort with ^G)
1> ssh:start().
2> ssh:daemon(10000, [{user_passwords, [{"root", "123456"}]}]).
1
2
[root@localhost ~]# sshpass -p 123456 ssh -p 10000 root@127.0.0.1 'lists:seq(1, 10).'
[1,2,3,4,5,6,7,8,9,10]

为什么多实例

  1. [单实例]缺少DBA,无法优化单实例性能;
  2. [单实例]系统本身设计问题,影响单实例性能;
  3. [单实例]预料之外,而且不能重启数据库;
  4. [多实例]克服以上缺点;
  5. [多实例]某个实例出现问题,不会影响到其他实例;
阅读全文 »

游戏开发中,需要对接平台SDK
验证流程大概是:

  1. 客户端登录平台,获取authorize_code,并发送给服务端
  2. 服务端向平台验证authorize_code,同时获得user_id
  3. 服务端验证通过后进行游戏登录

验证方式有GET,POST,JSON等方式,用到的是erlanghttpc模块.

阅读全文 »

源码安装erlang尽管性能上好很多,但各种工具以及编译参数的设置也是一个头疼的事情。

yum安装具有简单快速的优点:
下面是快速安装erlang的脚本

  • R14epel

  • R16+可以使用下面的脚本:

    1
    2
    3
    4
    yum install -y wget
    rpm --import http://binaries.erlang-solutions.com/debian/erlang_solutions.asc
    wget -O /etc/yum.repos.d/erlang_solutions.repo http://binaries.erlang-solutions.com/rpm/centos/erlang_solutions.repo
    yum install -y esl-erlang-R16B03
  • R15或者其他版本要么放弃,要么源码安装,没有其他办法了。

安装系统到U盘是一个作死的玩法,且不说io读写速度,驱动也是一个麻烦的问题.
虽然不齿,但是还是要知道怎么作死.

阅读全文 »

经常看到代码中有使用<img src="data:image/jpg;base64,xxxx" />格式的图片
生成如下:

1
2
3
4
5
// a.php
<?php
$img_file = file_get_contents("a.png");
echo "data:image/jpg;base64,".base64_encode($img_file);
?>

执行php a.php生成

丰富的插件成就了编辑器之神vim

个人的vim配置托管在github,具有如下特(chui)点(shui):

  • 适合在linux下使用;
  • 使用Bundle管理插件,分分钟完成安装(网络好的情况);
  • 安装方便,可以放到任何有权限访问的目录,只需简单修改两行配置即可;
  • 配置简单,每个插件一个配置文件,简单管理;