|
启动网络应用-zeromq服务端范例中代码之后,弹出控制台,显示“服务端已启动”,在不启动客户端的情况下,会一直停留在这里。按照我的理解,程序应该是执行到了while循环中的“..console.log("服务端已启动")”这一句了。我不理解的是,为啥程序会一直停留在这一句,而不继续往下执行呢?下面不是还有很多print语句吗?麻烦有搞懂的高手给小弟解惑,小弟先行谢过。我对zeromq兴趣还是蛮大的,就是水平不够,会经常卡壳。
范例代码贴出如下:- //服务端
- import zeromq
- var context = zeromq.context(1)
- //replay模式socket与客户端的request模式配对使用
- var responder = context.zmq_socket_reply()
- import console
- if( ! responder.bind( "tcp://*:5559") ){
- console.log( zeromq.lasterr() );
- return;
- }
- while (1) {
- request = zeromq.message();
-
- ..console.log("服务端已启动")
- if( ! responder.recvMsg(request) ){
- ..console.log( zeromq.lasterr() )
- }
-
- console.log ("服务端收到消息",request.getString() );
- request.close();
- //在这里可以添加其他代码
- sleep (1);
- console.log("正在响应")
- // 发送消息
- reply = zeromq.message("客户端你好");
- responder.sendMsg(reply)
- reply.close();
- //上面的代码也可以简化为一句,如下:
- //responder.send("客户端你好")
- console.log("响应完毕")
- }
- //上面的代码会一直循环不会中断,
- //如果使用break语句中断,则执行下面的代码释放资源
- responder.close();
- context.term();
复制代码 |
|