3-新建项目遇到的问题集合

20170511 创建

0 直接用pomelo init 创建项目,然后开始。

1 服务器启动时看到的错误:

Option path is not valid

onesec 在 5-3 11:01 回复Option path is not valid
这个看起来是配置路径不对
将 https://github.com/NetEase/pomelo/blob/master/lib/connectors/sioconnector.js
此文件替换node_modules/pomelo/*/lib/connectors/sioconnector.js ,即可解决此问题,新版sockect.io用法不正确所致的警告,官方已修复,但还没有publish到npm

2 新添加一个gate服务器报错

WebSocket connection to 'ws://127.0.0.1:3014/' failed: Connection closed before receiving a handshake response

新增服务器需要在以下几个地方注册:
1,adminServer.json
2,app.js

app.configure('production|development', 'gate', function () {
    app.set('connectorConfig',
        {
            connector: pomelo.connectors.hybridconnector,
            useProtobuf: true
        });
});

3 热更新支持

1.0新特性:https://github.com/NetEase/pomelo/wiki/pomelo-1.0%E6%96%B0%E7%89%B9%E6%80%A7

在1.0正式版本中,提供了handler和remote的热更新的部分支持。在pomelo1.0正式版中,提供对handler和remote两个目录中的文件进行监控,当有文件更新时,系统会重新load对应的handler和remote服务,这时当有新的handler请求和rpc请求进入时,系统就会自动执行更新后的服务。但是对于在非handler和remote目录的文件就不支持热更新。热更新开关默认是关闭状态,用户可以通过配置打开热更新服务。

使用方法:

  // handler 热更新开关 

    app.set('serverConfig',
    {
        reloadHandlers: true
    });


 // remote 热更新开关 
    app.set('remoteConfig',
    {
        reloadRemotes: true
    });

4 mysql连接失败

端口问题
参考demo,配置好数据库,数据库默认端口3306,但我的不是,于是发现dao_pool.js中并没有使用配置文件的端口。
增加一行:

return new Promise(function(resolve, reject){
          var client = mysql.createConnection({
            host: mysqlConfig.host,
            user: mysqlConfig.user,
            port: mysqlConfig.port,    #这里是数据库端口,
            password: mysqlConfig.password,
            database: mysqlConfig.database
          });
          resolve(client);
      });
  },

注意dao_pool.js由于有报错,已经替换为新的版本,请见我的上一篇文章。

5 unity项目报错找不到pomelo库

pomelo-unitychat-socket-master 官网下载的demo项目直接打开就报错了。
dll库版本不匹配
解决办法:
1,下载pomelo-unityclient-socket-master
2,打开工程,修改生成配置

3-新建项目遇到的问题集合_第1张图片
image.png

3, release版本重新生成dll
4, 新的DLL拷贝到demo项目:pomelo-unitychat-socket-master\Assets\Plugins
5, 这时发现报错已经变了,现在的错误是:
Assets/scripts/LoginGUI.cs(46,8): error CS1729: The type Pomelo.DotNetClient.PomeloClient' does not contain a constructor that takes2' arguments
这是demo对接口的用法不对,照着新的教程修改代码即可

string host = "127.0.0.1";
        int port = 3014;
        pc = new PomeloClient();
        pc.NetWorkStateChangedEvent += (state) =>
        {
            Debug.logger.Log("CurrentState is:" + state);
        };

        pc.initClient(host, port, () => {
            Debug.logger.Log("init ok...");
            pc.connect(null, (data) =>
            {
                Debug.logger.Log("connect ok...");
                JsonObject msg = new JsonObject();
                msg["uid"] = userName;
                msg["username"] = "abc";
                msg["password"] = "123";
                pc.request("gate.gateHandler.queryEntry", msg, OnQuery);
            });
         });

6, demo的服务端要对应,都是socket的版本。
https://github.com/NetEase/chatofpomelo-websocket

你可能感兴趣的:(3-新建项目遇到的问题集合)