CoffeeScript 双向客户端
问题
你想通过网络提供持续的服务,与客户保持持续的联系。
解决方案
创建一个双向 TCP 客户机。
在 Node.js 中
net = require 'net'domain = 'localhost'port = 9001ping = (socket, delay) ->console.log "Pinging server"socket.write "Ping"nextPing = -> ping(socket, delay)setTimeout nextPing, delayconnection = net.createConnection port, domainconnection.on 'connect', () ->console.log "Opened connection to #{domain}:#{port}"ping connection, 2000connection.on 'data', (data) ->console.log "Received: #{data}"connection.on 'end', (data) ->console.log "Connection closed"process.exit()
使用示例
$ coffee bi-directional-client.coffeeOpened connection to localhost:9001Pinging serverReceived: You have 0 peers on this serverPinging serverReceived: You have 0 peers on this serverPinging serverReceived: You have 1 peer on this server[...]Connection closed
讨论
这个特殊示例发起与服务器联系并在 @connection.on 'connect'@ 处理程序中开启对话。大量的工作在一个真正的用户中,然而 @connection.on 'data'@ 处理来自服务器的输出。@ping@ 函数递归是为了说明连续与服务器通信可能被真实的用户移除。
另请参阅 Bi-Directional Server,Basic Client 和 Basic Server。
练习
- 为选定的目标域和基于命令行参数或配置文件的端口添加支持。
转载本站内容时,请务必注明来自W3xue,违者必究。


优化或报错有奖
皖公网安备34020702000426号