Node.js的net模块提供了socket编程接口,方便我们利用较为底层的套接字接口来实现应用协议。这次我们看一个简单的回显服务器示例,包括服务端和客户端的代码。 使用JavaScript也可以进行套接字编程,哈哈,这酸爽! 代码 分服务器和客户端两部分来说吧。 服务器端: var net = require(“net”); // server is an instance of net.Server // sock is an instance of net.Socket var server = net.createServer(function(sock){ console.log(‘client connected, address – ‘, sock.remoteAddress, ‘ port – ‘, sock.remotePort); sock.setEncoding(‘utf8’); sock.on(‘data’, function(data){ console.log(‘got data from client – ‘, data); sock.write(data); }); sock.on(‘end’, function(){ console.log(‘client disconnected’); });…
Month: November 2016
Node.js之HTTP
HTTP 大部分的node使用者,都是用node来做Web API的,而HTTP模块是提供Web API的基础。为了支持所有的HTTP应用,node中的HTTTP模块提供的API是偏向底层化的。利用HTTP模块,我们可以简单快速搭建一个Web Server。 引入HTTP模块 在node 官方API 中,第一句话是这么说的:“To use the HTTP server and client one must require(‘http’)”,如果想要使用HTTP的服务器端和客户端的方法,首先第一步我们需要使用“require(‘http’)”引入HTTP模块。
回调函数透彻理解Java
回调函数,第一次见是在Java编程思想中,以及后来的观察者模式也应用了回调函数的思想。但是一直都没有重视,终于在一次面试的时候吃亏了,越来越理解为什么很多人说Java编程思想这本书要一遍遍的看,吃透! 首先在网络上搜索很多文章介绍什么是回调函数,看的云里雾里的。后来自己一步步分解终于理解了,记录如下。 从维基百科上面摘抄定义:(看完本篇文章再来理解这个定义) 在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。 在Java里面,我们使用接口来实现回调。 这篇文章中的解说定义非常好:http://blog.csdn.net/sweetwxh/article/details/2067139 所谓的回调,就是程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。下面是例子。 1. 首先定义一个类Caller,按照上面的定义就是程序员A写的程序a,这个类里面保存一个接口引用。 public class Caller { private MyCallInterface callInterface; public Caller() { } public void setCallFunc(MyCallInterface callInterface) { this.callInterface = callInterface; } public void call() { callInterface.printName(); } } 2. 当然需要接口的定义,为了方便程序员B根据我的定义编写程序实现接口。 public interface MyCallInterface { public void printName(); } 3. 第三是定义程序员B写的程序b public class Client implements MyCallInterface { @Override…
nodejs事件的监听与事件的触发
一、事件机制的实现 Node.js中大部分的模块,都继承自Event模块(http://nodejs.org/docs/latest/api/events.html )。Event模块(events.EventEmitter)是一个简单的事件监听器模式的实现。具有addListener/on,once,removeListener,removeAllListeners,emit等基本的事件监听模式的方法实现。它与前端DOM树上的事件并不相同,因为它不存在冒泡,逐层捕获等属于DOM的事件行为,也没有preventDefault()、stopPropagation()、 stopImmediatePropagation() 等处理事件传递的方法。
WebStorm配置ES6代码转换ES5代码
现阶段,建议你直接考虑用gulp,利用gulp-babel转es6。 毕竟一个团队中不是每个人都是用的webstrom,还有毕竟后续es6不是你的唯一需求,比如你还需要webpack 现阶段版本中转es5后在IE8下还是有很多坑需要填,甚至有bug依然很难用常规手段解决,所以如果你们需要支持IE8不是很建议在实际项目中用babel。 如果鉴于是自己玩玩或者用来熟悉ES6,还是可以的,下面说一下如何在webstorm中进行配置:
ES5规范之严格模式
现如今JavaScript早已不仅仅是网页特效脚本了,更多是用来构建大规模的Web应用,所以语言规范的制定者们也逐渐意识到要对JS进行语法方面的规范,并且有意地引导开发者编程习惯,消除一些不规范和不安全的语法,进而更好的满足以后大规模开发的要求,ES5规范中的严格模式就是其中重要的一环,今天我们就来详细介绍一下严格模式的使用以及它对语法的种种限制和规范。 启用严格模式只需使用’use strict’;这条语句即可,对于支持严格模式的浏览器,在声明’use strict’;语句之后的代码都将会在严格模式的限制下执行,对于不支持严格模式的浏览器,这个声明只是一个简单的字符串语句,不会产生任何影响,而我们在严格模式下编写的代码是规范的,也可以很好的运行,所以无需担心兼容性问题,下面是严格模式的一个简