歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu Server 12.10 上安裝 Node.js, ZeroMQ

Ubuntu Server 12.10 上安裝 Node.js, ZeroMQ

日期:2017/2/28 15:29:39   编辑:Linux教程

Node.js是一個基於google v8+javascript的服務端編程框架。對於搞雲計算,用Node.js,來做系統管理Web站點是非常合適的。理由是:

1)足夠簡單。
2)足夠快。
3)足夠小巧。
4)前後端一致性。
好,下面是安裝步驟:

首先確保系統安裝了python, gcc, g++,如果沒有則安裝:
$ sudo apt-get install python
$ sudo apt-get install build-essential
$ sudo apt-get install gcc
$ sudo apt-get install g++

下載最新版源代碼包:node-v0.8.14.tar.gz

解壓:
$ sudo tar -zxf node-v0.8.14.tar.gz
$ cd node-v0.8.14

(一) 默認方式安裝:

$ ./configure
$ make
$ sudo make install

(二) 選擇目錄方式安裝:
$ ./configure --prefix=/opt/node
$ make -j 3 # 3=CPU核數+1
$ sudo make install

安裝結束後, 用下面的命令檢查安裝的版本:
$ node --version
v0.8.14

接下來參考下面的文章開始你的nodejs編程之旅吧: http://www.linuxidc.com/Linux/2012-11/73363.htm

zeromq是一個基於c的消息隊列編程框架。zeromq用處很多, 它具有:

1)足夠簡單。
2)足夠快。
3)足夠小巧。
等優點. 下面是安裝步驟:

下載: zero-3.2.1
http://www.zeromq.org/

$ tar -xzf zeromq-3.2.1.tar.gz
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig

下面寫一個客戶端和一個服務端測試:

mqclient.c

  1. //
  2. // Hello World client
  • // Connects REQ socket to tcp://localhost:5555
  • // Sends "Hello" to server, expects "World" back
  • //
  • #include <zmq.h>
  • #include <string.h>
  • #include <stdio.h>
  • #include <unistd.h>
  • int main (void)
  • {
  • void *context = zmq_ctx_new ();
  • // Socket to talk to server
  • printf ("Connecting to hello world server…\n");
  • void *requester = zmq_socket (context, ZMQ_REQ);
  • zmq_connect (requester, "tcp://localhost:5555");
  • int request_nbr;
  • for (request_nbr = 0; request_nbr != 10; request_nbr++) {
  • zmq_msg_t request;
  • zmq_msg_init_data (&request, "Hello", 6, 0, 0);
  • printf ("Sending Hello %d…\n", request_nbr);
  • zmq_msg_send (&request, requester, 0);
  • zmq_msg_close (&request);
  • printf ("prepare recv message\n");
  • zmq_msg_t reply;
  • zmq_msg_init (&reply);
  • if (-1==zmq_msg_recv (&reply, requester, 0)) {
  • printf("recv data error.\n");
  • }
  • printf ("Received World %d\n", request_nbr);
  • zmq_msg_close (&reply);
  • }
  • zmq_close (requester);
  • zmq_ctx_destroy (context);
  • return 0;
  • }

mqserver.c

  1. //
  2. // Hello World server
  3. // Binds REP socket to tcp://*:5555
  4. // Expects "Hello" from client, replies with "World"
  5. //
  6. #include <zmq.h>
  7. #include <stdio.h>
  8. #include <unistd.h>
  9. #include <string.h>
  10. int main (void)
  11. {
  12. int ret;
  13. char buf[5]="world";
  14. buf[5] = 0;
  15. void *context = zmq_ctx_new ();
  16. // Socket to talk to clients
  17. void *responder = zmq_socket (context, ZMQ_REP);
  18. ret = zmq_bind (responder, "tcp://*:5555");
  19. if (ret==0) {
  20. printf("zmq_bind success\n");
  21. } else {
  22. printf("zmq_bind error=%d:%s\n", ret, strerror(errno));
  23. exit(ret);
  24. }
  25. while (1==1) {
  26. // Wait for next request from client
  27. printf("wait for clients...\n");
  28. zmq_msg_t request;
  29. zmq_msg_init (&request);
  30. ret = zmq_msg_recv (&request, responder, 0);
  31. printf ("Received=%d\n", ret);
  32. zmq_msg_close (&request);
  33. // Do some 'work'
  34. sleep (1);
  35. // Send reply back to client
  36. zmq_msg_t reply;
  37. zmq_msg_init_data (&reply, buf, 6, 0, 0);
  38. ret = zmq_msg_send (&reply, responder, 0);
  39. printf("zmq_msg_send ret=%d\n", ret);
  40. zmq_msg_close (&reply);
  41. }
  42. // We never get here but if we did, this would be how we end
  43. zmq_close (responder);
  44. zmq_ctx_destroy (context);
  45. return 0;
  46. }

下面是編譯命令:
$ gcc mqclient.c -o mqclnt -lzmq
$ gcc mqserver.c -o mqsrvr -lzmq

運行:
$ ./mqsrvr &
$ ./mqclnt

結束!

Copyright © Linux教程網 All Rights Reserved