文档章节

node.js系列之TCP(socket通讯)与HTTP搞基

L3ve
 L3ve
发布于 2014/06/20 10:07
字数 692
阅读 4208
收藏 7

最近项目终于可以缓缓,没有之前那么急,刚好也可以让我写下博客来记录一些用过的东西,让大家第一次上手的时候至少能比我少走弯路,我就已经高兴到哭了T.T...(废话了那么多,开工)

不久前,老板跟我说要用socket和他的服务器对接,之前弄过websocket所以就一心想到那上面去了.

但其实websocket是建立在HTTP上的,可是一般的软件通讯都是用TCP的,所以我只能开始我的查询资料之旅.

其实TCP和HTTP的socket都是大同小异,因为我后台用的是node.js所以都有包可以直接用.HTTP的npm下socket.io.而TCP的就npm下net.(其实这2个东东使用都很简单,我都在犹豫要不要写这篇文章呢).

大神就直接看着个API就好了:net的API   (里面已经够简单够详细了,好过看我的臭文章).

不过还是有些同修喜欢直接,那我就贴上我的代码:

客户端代码

var net = require('net');                    
var client = new net.Socket();                         //前面这2句就不用介绍了
client.connect(6000, "127.0.0.1");                     //端口号 + 服务器的IP

client.on('data', function (data) {                    //接受返回的数据,回调
    console.log('!!!!!!!!:' + data);
});

client.on('error', function (exception) {              //错误回调
    console.log('socket error:' + exception);
//    client.end();
});

服务端代码:

ps:好吧,我也比较懒,只是直接在API里复制的...大家还是去看API好了..

var net = require('net');
var server = net.createServer(function(c) { //'connection' listener
  console.log('server connected');
  c.on('end', function() {
    console.log('server disconnected');
  });
  c.write('hello\r\n');
  c.pipe(c);
  });
  server.listen(端口号, function() { //'listening' listener
     console.log('server bound');
  });


=======================可爱的分割线===============================

上述已经完成了项目的需要,下面的部分是可看可不看的东东.

这里我想到一个问题,我现在的项目是用node.js做web应用,每个网页的客户端都是经过web服务器来进行TCP连接通讯,这样的话,可以说每个web客户端都可以当作同一个客户端在和TCP服务端通讯,TCP服务端除非在传送的数据里添加识别数据,要不然就是一对一的关系,TCP服务端无法识别是哪个web客户端,在进行通讯.

找 找 找资料 ----找到一个好资料 ----敬个礼 握握手----你是我的好资料--------------

找了很多东西还是没看到类似的,之后在Stack Overflow找到了.

直接给链接 Create WebSockets between a TCP server and HTTP server in node.js

大致的做法就是:在HTTPsocket里的用TCPsocket传送,HTTP用来链接.TCP用来传输(个人理解,最好各位自己了解下,知道了也让我学习学习)



© 著作权归作者所有

共有 人打赏支持
L3ve
粉丝 10
博文 28
码字总数 14006
作品 0
浦东
程序员
私信 提问
node.js 相关

Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that mak......

wangliang_a
2016/01/19
2
3
Hprose for Node.js 1.6.0 发布

Hprose 是一个先进的轻量级的跨语言跨平台面向对象的高性能远程动态通讯中间件。本项目是 Hprose 的 Node.js 版本实现。 特点: 跨语言,跨平台,支持 20 多种常用语言。 高效的序列化和反序...

andot
2015/06/23
1K
0
【深入浅出Node.js系列十五】Nodejs实现websocket的4种方式

深入浅出Node.js系列 【深入浅出Node.js系列一】什么是Node.js 【深入浅出Node.js系列二】Node.js&NPM的安装与配置 【深入浅出Node.js系列三】深入Node.js的模块机制 【深入浅出Node.js系列四...

陶邦仁
2016/01/20
368
1
nodejs v8.9.4 安装

一.安装 环境Centos7.3 64位 wget https://nodejs.org/dist/v8.9.4/node-v8.9.4.tar.gz cd node-v8.9.4/ ./configure --prefix=/usr/local/nodejs make make install 二.nodejs设置环境变量 ......

yaozhaosheng
06/26
0
0
Node.js+Socket.IO实现的WebSocket群聊天室源码

首先上图上实例 聊天室地址:http://chat.52itstyle.com WebSocket简介 谈到Web实时推送,就不得不说WebSocket。在WebSocket出现之前,很多网站为了实现实时推送技术,通常采用的方案是轮询 ...

小柒2012
2016/07/13
217
1

没有更多内容

加载失败,请刷新页面

加载更多

This APT has Super Cow Powers.

在Debian/Ubuntu上,apt包管理器内嵌着一个彩蛋. 如果你在命令行界面输入 apt help 在最后一行能找到This APT has Super Cow Powers. 说明该apt具有超级牛力 牛力是个什么梗? 则说明你的系统...

taadis
11分钟前
0
0
起薪2万的爬虫工程师,Python需要学到什么程度才可以就业?

爬虫工程师的的薪资为20K起,当然,因为大数据,薪资也将一路上扬。那么,Python需要学到什么程度呢?今天我们来看看3位前辈的回答。 1、前段时间快要毕业,而我又不想找自己的老本行Java开发...

糖宝lsh
20分钟前
1
0
携手开发者共建云生态 首届腾讯云+社区开发者大会在京举办

本文由云+社区发表 北京时间12月15日,由腾讯云主办,极客邦科技、微信、腾讯TEG协办的首届腾讯云+社区开发者大会在北京朝阳悠唐皇冠假日酒店举办。在会上,腾讯云发布了重磅产品开发者平台以...

腾讯云加社区
40分钟前
1
0
人工智能时代员工如何证明其IT工作价值

机器人可以取代你的工作吗?你能帮助机器人完成它的工作吗?如果你正在考虑自己的职业生涯以及今后将如何发展,那么应该询问自己这些问题了。 机器人可以取代你的工作吗?你能帮助机器人完成它的...

Linux就该这么学
42分钟前
2
0
CPU性能过剩提升乏力影响未来行业发展吗?

虽然CPU仍然在不断发展,但是它的性能已经不再仅仅受限于单个处理器类型或制造工艺上了。和过去相比,CPU性能提升的步伐明显放缓了,接下来怎么办,成为横亘在整个行业面前的大问题。 自201...

linuxCool
53分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部