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, 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 takes
2' 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