socket如何同时读写?
有一个server,同时实现如下功能: 1.读取客户端发送的消息写数据库。 2.读取数据一个表的数据发送个客户端。
不是等待读完再写或者写完再读,而是同时进行。
如果其他语言实现的话可能2个线程一直循环做不同的事情,
请问node.js中如何实现。
非常感谢。
3 回复
谢谢 ” 两个线程跑就是系统在切换线程执行, 实际上是一个线程在 CPU 上跑. “
这个我是明白的,但是node.js不是很熟悉
我的程序结构应该是这样的:
var server = net.createServer( function(c) {
c.on('data', function(data) {
//do something
//write db
});
//1
});
function serverStart () {
server.listen(SERVER_PORT, function() {
console.log('server bound');
});
}
serverStart();
我想在这个主流程之外同时有个循环,主动给客户端发包
while true {
//read from db
//write to current client
}
我是想了解,这段代码放在那个位置?
现在的实现是在//1位置放了个: setInterval(SomeFunc, 1000);
但是这个不是很符合我的需求(考虑到一次调用没完成到时间又跑一次,需要一些标记变量来判断是否执行之类的)。
请问如何实现,谢谢。
“读取数据一个表的数据”的回调函数应该是异步的,“读取客户端发送的消息写数据库”的回调函数也是异步的,所以两者之间的发生时间是没有先后顺序的。