关于 supersocket 不能通过Bootstrap 启动

App.config内容


 
 <configSections>
    <section name="superSocket"
         type="SuperSocket.SocketEngine.Configuration.SocketServiceConfig, SuperSocket.SocketEngine" />
  </configSections>

  <superSocket>
<servers>
<server name="B_STMP_Server" textEncoding="gb2312" serverType="B_STMP_Server.RTU.RTUServer, B_STMP_Server" ip="Any" port="2020" maxConnectionNumber="100">
</server>
</servers>
</superSocket>

 

要点:serverType="B_STMP_Server.RTU.RTUServer, B_STMP_Server" 

逗号 前面的  B_STMP_Server.RTU.RTUServer 是 自定义 appserver 的类型的全名
逗号 后面的 不知道什么意思(此处不求甚解了)参考的官方的文档就是这么写的,
B_STMP_Server不行的话 就换成 B_STM_Server.RTU


App.config中的配置正确之后 还是会 Bootstrap.Initialize 失败

后来经过反复排查 得出以下结果

public RTUServer(): base(new DefaultReceiveFilterFactory<RTUReceiveFileter, RTUReqInfo>()) //使用默认的接受过滤器工厂 (DefaultReceiveFilterFactory)
        {
            this.NewSessionConnected += new SessionHandler<RTUSession>(_RTUServer_NewSessionConnected);
            this.NewRequestReceived += new RequestHandler<RTUSession, RTUReqInfo>(_RTUServer_NewRequestReceived);
            this.SessionClosed += new SessionHandler<RTUSession, CloseReason>(_RTUServer_SessionClosed);

            LogHelper.Info("RTUServer Started");
        }

  

如果 把 

LogHelper.Info("RTUServer Started");

换成

console.write("RTUServer Started");

Bootstrap 就会初始化 失败 原因不明 但能隐约猜到



如果不用 Bootstrap 启动 Server,而是在代码中调用 Server的start方法来启动server的话。

即使在Server的构造方法里面 写上
console.write("RTUServer Started");

服务照样能启动,并且 控制台 也能 正常打印出 RTUServer Started


另外 之前一直纠结了很久 的如何 在使用 Bootstrap 启动Server 的同时 也能指定服务器对象的 各种回调函数 (委托) 这个问题

其实很简单,回调函数不仅可以使用某一个对象的属性来添加,也可以直接在类的构造方法中直接添加。

如下:
this.NewSessionConnected += new SessionHandler<RTUSession>(_RTUServer_NewSessionConnected);
            this.NewRequestReceived += new RequestHandler<RTUSession, RTUReqInfo>(_RTUServer_NewRequestReceived);
            this.SessionClosed += new SessionHandler<RTUSession, CloseReason>(_RTUServer_SessionClosed);


而不是非要实例化一个对象之后 通过对象添加。





 

博主从事:物联网数据采集(wifi gprs 以太网 zigbee )的 终端 软硬件, 服务端软件 设计和开发工作 ,技术讨论或合作 加QQ群:389268470,验证注明 博客园

 

posted on 2017-08-24 10:09  陈德洲  阅读(354)  评论(0编辑  收藏  举报

导航