RHEL7.2/Centos-node.js 2. npm install and websocket example

20 篇文章 0 订阅

npm 类似 RPM/RHEL 或者Debian/deb.

为了减少对全局的依赖,默认npm将需要的第三方软件包安装在项目的本地目录,类似GCC的sys-root。全局安装除非参数-g指定,并且必须设定系统环境变量 NODE_PATH。 

websocket例子 /windows7-64bit /node 6.9 

 

D:\Develop\Cloud\node\ws-nodejs>node -v
v6.9.5                                    

D:\Develop\Cloud\node\websocket-nodejs>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.


See `npm help json` for definitive documentation on these fields
and exactly what they do.


Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.


Press ^C at any time to quit.
name: (websocket-nodejs)
version: (1.0.0)
description:
entry point: (client-websocket.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to D:\Develop\Cloud\node\websocket-nodejs\package.json:


{
  "name": "websocket-nodejs",
  "version": "1.0.0",
  "description": "",
  "main": "client-websocket.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}




Is this ok? (yes)


D:\Develop\Cloud\node\websocket-nodejs>
D:\Develop\Cloud\node\websocket-nodejs>dir
 Volume in drive D is Data
 Volume Serial Number is EE9F-4AE0


 Directory of D:\Develop\Cloud\node\websocket-nodejs


03/09/2018  12:57 PM    <DIR>          .
03/09/2018  12:57 PM    <DIR>          ..
03/09/2018  11:17 AM             1,048 client-websocket.js
03/09/2018  12:57 PM               223 package.json
03/09/2018  11:32 AM             1,973 websocket-server.js
               3 File(s)          3,244 bytes
               2 Dir(s)  441,730,134,016 bytes free


D:\Develop\Cloud\node\websocket-nodejs>npm   install  websocket  <<<<<<<<--本地安装websocket 


> websocket@1.0.25 install D:\Develop\Cloud\node\websocket-nodejs\node_modules\websocket
> (node-gyp rebuild 2> builderror.log) || (exit 0)




D:\Develop\Cloud\node\websocket-nodejs\node_modules\websocket>if not defined npm_config_node_gyp (node "D:\Develop\Cloud\node\node-v6.9.5-win-x64\node_modules\npm\bin\node-gyp-bin\\..\..\node_
e (node "" rebuild )
websocket-nodejs@1.0.0 D:\Develop\Cloud\node\websocket-nodejs
`-- websocket@1.0.25
  +-- debug@2.6.9
  | `-- ms@2.0.0
  +-- nan@2.9.2
  +-- typedarray-to-buffer@3.1.5
  | `-- is-typedarray@1.0.0
  `-- yaeti@0.0.6


npm WARN websocket-nodejs@1.0.0 No description
npm WARN websocket-nodejs@1.0.0 No repository field.

 

###########下面的例子websocket程序来自 ######################

https://www.npmjs.com/package/websocket

#######################################################

<<<<<<<<<<<<<  Source code server/websocket  

'use strict';
var WebSocketServer = require('websocket').server;
var http = require('http');

var server = http.createServer(function(request, response) {
    console.log((new Date()) + ' Received request for ' + request.url);
    response.writeHead(404);
    response.end();
});
server.listen(8080, function() {
    console.log((new Date()) + ' Server is listening on port 8080');
});

var wsServer = new WebSocketServer({
    httpServer: server,
    // You should not use autoAcceptConnections for production
    // applications, as it defeats all standard cross-origin protection
    // facilities built into the protocol and the browser.  You should
    // *always* verify the connection's origin and decide whether or not
    // to accept it.
    autoAcceptConnections: false
});

function originIsAllowed(origin) {
  // put logic here to detect whether the specified origin is allowed.
  return true;
}

wsServer.on('request', function(request) {
    if (!originIsAllowed(request.origin)) {
      // Make sure we only accept requests from an allowed origin
      request.reject();
      console.log((new Date()) + ' Connection from origin ' + request.origin + ' rejected.');
      return;
    }
    
    var connection = request.accept('echo-protocol', request.origin);
    console.log((new Date()) + ' Connection accepted.');
    connection.on('message', function(message) {
        if (message.type === 'utf8') {
            console.log('Received Message: ' + message.utf8Data);
            connection.sendUTF(message.utf8Data);
        }
        else if (message.type === 'binary') {
            console.log('Received Binary Message of ' + message.binaryData.length + ' bytes');
            connection.sendBytes(message.binaryData);
        }
    });
    connection.on('close', function(reasonCode, description) {
        console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.');
    });
});

 

 

D:\Develop\Cloud\node\websocket-nodejs>node  websocket-server.js
Fri Mar 09 2018 12:58:44 GMT+0800 (China Standard Time) Server is listening on port 8080
Fri Mar 09 2018 12:59:18 GMT+0800 (China Standard Time) Connection accepted.

 

 

 

 

 

 

<<<<<<<<<<Source code client/websocket 

#!/usr/bin/env node
var WebSocketClient = require('websocket').client;

var client = new WebSocketClient();

client.on('connectFailed', function(error) {
    console.log('Connect Error: ' + error.toString());
});

client.on('connect', function(connection) {
    console.log('WebSocket Client Connected');
    connection.on('error', function(error) {
        console.log("Connection Error: " + error.toString());
    });
    connection.on('close', function() {
        console.log('echo-protocol Connection Closed');
    });
    connection.on('message', function(message) {
        if (message.type === 'utf8') {
            console.log("Received: '" + message.utf8Data + "'");
        }
    });
    
    function sendNumber() {
        if (connection.connected) {
            var number = Math.round(Math.random() * 0xFFFFFF);
            connection.sendUTF(number.toString());
            setTimeout(sendNumber, 1000);
        }
    }
    sendNumber();
});

client.connect('ws://localhost:8080/', 'echo-protocol');


<<<<<<<<<<<<<<<<< Start client    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
D:\Develop\Cloud\node\websocket-nodejs>node  client-websocket.js
WebSocket Client Connected
Received: '2293934'
Received: '6439691'
Received: '4025963'
Received: '4213112'
Received: '13728741'
Received: '8995909'
Received: '9100122'
Received: '9200856'
Received: '4214896'
^C
D:\Develop\Cloud\node\websocket-nodejs>


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 


On server side 
Received Message: 2293934
Received Message: 6439691
Received Message: 4025963
Received Message: 4213112
Received Message: 13728741
Received Message: 8995909
Received Message: 9100122
Received Message: 9200856
Received Message: 4214896
Fri Mar 09 2018 12:59:27 GMT+0800 (China Standard Time) Peer ::ffff:127.0.0.1 disconnected.


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值