createserver例子,createServer

http://www.itjxue.com  2023-01-13 19:09  来源:未知  点击次数: 

http.createServer amp;express.createServer有区别吗

var express = require('express'),

path = require('path'),

http = require('http'),

io = require('socket.io'),

wine = require('./routes/wines');

var app = express();

app.configure(function () {

app.set('port', process.env.PORT || 3000);

app.use(express.logger('dev'));

app.use(express.bodyParser())

app.use(express.static(path.join(__dirname, 'public')));

});

var server = http.createServer(app);

io = io.listen(server);

io.configure(function () {

io.set('authorization', function (handshakeData, callback) {

if (handshakeData.xdomain) {

callback('Cross-domain connections are not allowed');

} else {

callback(null, true);

}

});

});

server.listen(app.get('port'), function () {

console.log("Express server listening on port " + app.get('port'));

});

app.get('/wines', wine.findAll);

app.get('/wines/:id', wine.findById);

app.post('/wines', wine.addWine);

app.put('/wines/:id', wine.updateWine);

app.delete('/wines/:id', wine.deleteWine);

io.sockets.on('connection', function (socket) {

socket.on('message', function (message) {

console.log("Got message: " + message);

ip = socket.handshake.address.address;

url = message;

io.sockets.emit('pageview', { 'connections': Object.keys(io.connected).length, 'ip': '***.***.***.' + ip.substring(ip.lastIndexOf('.') + 1), 'url': url, 'xdomain': socket.handshake.xdomain, 'timestamp': new Date()});

});

socket.on('disconnect', function () {

console.log("Socket disconnected");

io.sockets.emit('pageview', { 'connections': Object.keys(io.connected).length});

});

});

这是一个例子,我没细看,你可以参考

nodejs 还是python?

这个关键取决你自身的基础条件和兴趣方向。

python是个比较成熟的跨平台的通用型脚本语言,有非常完善庞大的内置模块和第三方扩展模块。

python几乎什么都能干,但是自身性能较低。it自动化运维,网络爬虫,数据分析是优势的领域

node.js采用事件驱动、异步编程,为网络服务而设计

"node.js 是服务器端的 javascript 运行环境,它具有无阻塞(non-blocking)和事件驱动(event-driven)等的特色,node.js 采用 v8 引擎,同样,node.js 实现了类似 apache 和 nginx 的web服务,让你可以通过它来搭建基于 javascript 的 web app。"

c# Socket 多线程例子

以下为伪代码,未编译执行:

//继承Thread类

class CreateServerThread extends Thread {

private Socket client;

private BufferedReader in;

private PrintWriter out;

//生产实例时自动调用 CreateServerThread方法

public CreateServerThread(Socket s) throws IOException {

client = s;

in = new BufferedReader(new InputStreamReader(client.getInputStream(), "GB2312"));

out = new PrintWriter(client.getOutputStream(), true);

String RemoteIP = client.getInetAddress().getHostAddress();

String RemotePort = ":" + client.getLocalPort();

String dateTime = getCurrentDate();

logger.info("A client come in!IP:" + RemoteIP + RemotePort

+ " Time :" + dateTime);

out.println("Client's IP " + RemoteIP + RemotePort

+ " that visit Server at " + dateTime);

logger.info("A client come in!IP:" + RemoteIP + RemotePort

+ " Time :" + dateTime);

start(); //新启动一个线程调用run() 方法

}

//线程执行的run方法

public void run() {

try {

String strInput = in.readLine();

if(StringUtils.isBlank(strInput)){

client.close();

return;

}

String[] passwdAndExecute = strInput.split("@@@");

String line = passwdAndExecute[0];

logger.info(line);

logger.info("Client input: " + line);

logger.info("Client input: " + line);

String strRet;

out.flush();

logger.info("--- See you, bye! ---");

out.println("--- See you, bye! ---");

client.close();

input.close();

} catch (Exception e) {

logger.error("error:" + e.getMessage());

}

}

}

node.js createserver获取请求值

方法说明:

该函数用来创建一个HTTP服务器,并将 requestListener 作为 request 事件的监听函数。

语法:

复制代码代码如下:

http.createServer([requestListener])

由于该方法属于http模块,使用前需要引入http模块(var http= require(“http”) )

接收参数:

requestListener 请求处理函数,自动添加到 request 事件,函数传递两个参数:

req 请求对象,想知道req有哪些属性,可以查看 “http.request 属性整合”。

res 响应对象 ,收到请求后要做出的响应。想知道res有哪些属性,可以查看 “http.response属性整合”。

例子:

例子中res指定了响应头,响应体内容为node.js,用end结束。

最后调用listen函数,监听3000端口。

复制代码代码如下:

var http = require('http');

http.createServer(function(req, res){

res.writeHead(200, {'Content-type' : 'text/html'});

res.write('h1Node.js/h1');

res.end('pHello World/p');

}).listen(3000);

源码:

复制代码代码如下:

exports.createServer = function(requestListener) {

return new Server(requestListener);

};

Nodejs乱码怎么解决

Node.js 支持中文不太好(实际上是Javascript支持),见《Node.js开发指南》。

要想Node.js正常显示中文,需要两点:

1、js文件保存为unicode格式。js文件是否为unicode格式,一个简单的方法是使用记事本来判断。使用记事本打开JS文件,点菜单另存为,看编码格式是否为"UTF-8"。若不是,可使用UltraEdit工具进行转换,使用记事本也可以转换。

2、在js文件中增加编码说明meta数据,让浏览器知道使用什么编码来解释网页

两个条件缺一不可。

一个Node.js中使用中文的例子如下,该app.js需保存为utf-8格式,同时在文中增加meta编码数据说明:

[javascript]?view plain?copy

meta?charset="utf-8"/

[javascript]?view plain?copy

//app.js

var?http?=?require('http');

http.createServer(function(req,?res)?{

res.writeHead(200,?{'Content-Type':?'text/html'});

res.write('headmeta?charset="utf-8"//head');

res.write('h1Node.js/h1');

res.write('b亲爱的,你慢慢飞,小心前面带刺的玫瑰.../b');

res.end('pHello?World/p');

}).listen(3000);

console.log("HTTP?server?is?listening?at?port?3000.");

(责任编辑:IT教学网)

更多

推荐Freehand教程文章