博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node.js学习-整理
阅读量:4678 次
发布时间:2019-06-09

本文共 2803 字,大约阅读时间需要 9 分钟。

安装node.js

去这里http://nodejs.org/download/选择Source Code下载,$ ./configure && make && sudo make install
如果./configure出现error,

请确保:python 2.6 or 2.7 , GUN make 3.81 or newer.

然后make如果出错如下:
node-v0.8.***/out/Release/linker.lock: No such file or directory
原因是【猜测】:linux服务器的内核版本太老.


必备+常用包

$ sudo npm install -g supervisor //可以监控文件的修改从而自动重新加载js.

$ sudo npm install socket.io //非常不错的websocket封装包.没有之一。
$ sudo npm install -g forever //使node服务器以deamon方式运行.

如果服务器不能联网,怎么在其上安装forever?

这样: 点击文件列表右上方的Downloads按钮,即进入 选择"Download as tar.gz", 下下来了文件名为nodejitsu-forever......tar.gz, 扔到服务器上然后执行命令:$ sudo npm install -g nodejitsu-forever......tar.gz
file:///....这种。因为后者对于某
装websocket包:
$ sudo npm install websocket-server<--坑爹!
经折腾,这个包就是一个坑爹!
这个好:file:///....这种。因为后者对于某
$ sudo npm install socket.io

 


 

很好的node入门,非常适合我的口味:

http://www.nodebeginner.org/index-zh-cn.html

 

websocket与node.js的完美结合:(看看了解下也就罢了。这里面用到的包"websocket-server"非常坑爹、千万别用)

 

socket.io:

 

nodejs服务端和web前端共用一个js文件(厉害. 一开始我的前端用不成,后来找到原因了:是由于我的router是自己写的,没有对这个js文件进行路由。。。):):

也可以看看可以看看node_modules/socket.io/node_modules/socket.io-client/lib/io.js这个文件。同样的。目测更diao。

介绍怎么使得shell脚本可以deamon方式运行,然后给出了一个让node服务器以后台deamon方式运行的包“forever”:

http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever


我的记录

https & wss:

1.产生证书:

$ mkdir certs
$ openssl req -new -x509 -keyout certs/key.pem -out certs/cert.pem -days 365 -nodes
随便输入几个name...
$ ls certs/
2. node.js里用https模块:
var options =
{
    key: fs.readFileSync("certs/key.pem"),
    cert: fs.readFileSync("certs/cert.pem")
};
httpsServer = https.createServer(options, onRequest);
3.客户端链接相应的换成https即可:
var socket = io.connect(
//note: here can be 'http'. but, if the secure = true in the down, it's https really~. if you set 'https', the down can delete.
"http://" + location.hostname + ":" + location.port + "/chat"  //'chat' is 'namespace' in socket.io server.
, {secure: true}  //if true, it's https and wss.
);
具体可以看看node_modules/socket.io/node_modules/socket.io-client/lib/io.js这个文件。

4. error 

我在linux下用Chromium调试:file:///home/U/socketServer/test.html, 报错如下:(firefox倒是没有报错而挺好)

 XMLHttpRequest cannot load . Origin null is not allowed by Access-Control-Allow-Origin.

网上有说Chromium打开file会出问题,好吧,我把客户端测试html扔到本机nginx服务器上,结果还是报错:

  1. GET
    1. Socket.handshake
    2. Socket.connect
    3. Socket
    4. io.connect
    5. (anonymous function)

具体到代码‘xhr.send(null);’。

崩了个溃的。网上有说是xhr不可以跨域,我不懂。进过反复排查,最终把服务端的server创建的ip改为具体的ip(之前用的是"0.0.0.0").然后就可以在别的机器上通过我扔到nginx上的html来进行websocket通讯了。然而这样本地却连firefox都无法io.connect了。。好吧,总结下:本地调试环境中(I'm working in my linux),就用firefox吧,服务端创建server的ip和客户端io.connect的ip都设为0.0.0.0,直接firefox打开本地html(file:///)即可联调;而如果是发布生产环境,那就把server的ip和客户端io.connect的ip都设为具体的ip吧(10.11.12.13),只不过这时就没法本地测试了.
补充: 如果是https且证书不是合法的,那就必须先在浏览器上访问一下该https从而把信任这个不合法的证书,否则报错如上。(我怀疑就只是file:///和证书的原因。。)

转载于:https://www.cnblogs.com/xiaouisme/archive/2012/09/13/2684170.html

你可能感兴趣的文章
记忆化搜索=搜索的形式+动态规划的思想(来自百度百科)
查看>>
图 | 为什么存在关于图的研究
查看>>
hdu 1133 Buy the Ticket(递推+精度精算)
查看>>
html5学习笔记(<section>)
查看>>
LeetCode: Add Binary 解题报告
查看>>
网络原理笔记索引
查看>>
iis配置write模块
查看>>
Django项目:CMDB(服务器硬件资产自动采集系统)--11--07CMDB文件模式测试采集硬件数据...
查看>>
环境搭建
查看>>
报错TypeError: $(...).live is not a function解决方法
查看>>
C#设计模式系列 8 ----Builder 生成器模式之--发工资了,带老婆到 岗顶百脑汇配置电脑...
查看>>
Servlet学习的两个案例之网站访问次数的统计
查看>>
读取 Excel 之 Epplus
查看>>
Knockout v3.4.0 中文版教程-14-控制文本内容和外观-style绑定
查看>>
Highcharts 统计图
查看>>
流式套接字:基于TCP协议的Socket网络编程(案例2)
查看>>
安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置(转)
查看>>
【转】Oracle DECODE函数的语法介绍
查看>>
集成Glide4.3.1出错!AbstractMethodError: abstract method "void com.bumptech.glide.module
查看>>
滴滴故障表
查看>>