Ứng dụng khách gốc của Google Chrome sắp được phát hành. http://blog.chromium.org/2011/02/native-client-getting-ready-for-takeoff.html Điều này có cho phép node.js được chạy trong trình duyệt cho phép các ứng dụng được phân phối giao tiếp với nhau mà không cần phải đi qua máy chủ không?Node.js có thể chạy phía máy khách trong Chrome với ứng dụng gốc của nó (sắp được phát hành)
Trả lời
node.js không phải là mã Javascript thuần túy. Có một số phần của nó được viết bằng C++ nên điều này là không thể.
Có một vài khả năng để liên lạc được phân phối. Một là sử dụng api Websockets trong trình duyệt để giao tiếp với các trình duyệt khác. Cách khác là chạy node.js như một quá trình máy chủ riêng biệt trên cùng một máy với trình duyệt.
Thứ hai này là lựa chọn tốt hơn để tạo ứng dụng được phân phối vì nó làm giảm sự phụ thuộc vào trình duyệt. Phiên bản 0.5.0pre của node.js bây giờ xây dựng OK trên Cygwin và có thể gộp các thành phần thiết yếu của Cygwin như là một nhị phân độc lập để phân phối cho các máy khách Windows. Older versions of node.js used to be distributed this way.
Bạn không thể chạy Node.js trong trình duyệt.
Tuy nhiên, nếu bạn muốn thực hiện kết nối P2P, có thể nếu trình duyệt đã cài đặt phiên bản Flash (Flash 10) mới nhất. Trong phiên bản mới nhất, họ đã giới thiệu RTMFP cho phép bạn thực hiện kết nối P2P mà không cần phải đi qua máy chủ. Nếu bạn muốn sử dụng nó trong Javascript, bạn có thể tạo một cây cầu hoặc bạn có thể xem a project I started recently thực hiện chính xác điều đó.
Tôi đang tìm kiếm cách phân phối thuật toán cho việc gấp protein đến các máy tính khác theo cách bittorrent. Mặc dù không thể chạy node.js bây giờ, tôi đã hy vọng rằng đôi khi trong tương lai có thể là – Sycren
@Sycren Bạn có thể xem [BOINC] (http://boinc.berkeley.edu/) được tạo cho những thứ như thế. Nó không dựa trên trình duyệt, nhưng dựa trên máy tính để bàn khó khăn. – HoLyVieR
Tôi đã xem xét thực hiện nó thông qua trình duyệt vì điều này sẽ trở nên quan trọng hơn sau này trong tương lai .. Tôi cũng hy vọng rằng trong một cách lập trình trong javascript sẽ có nghĩa là 1 bộ mã thay vì một cái gì đó hơi khác nhau cho mỗi hệ điều hành giống như máy ảo java. Mặc dù bạn có thể tranh luận rằng các trình duyệt sẽ sử dụng js khác nhau, tôi không nghĩ rằng các chức năng toán học bằng trình duyệt sẽ thay đổi quá nhiều – Sycren
Ngày nay có một số giải pháp cho phép bạn chạy một số mô-đun Nút trong chrome. Có một cái nhìn về các liên kết này:
node-webkit là thời gian chạy ứng dụng dựa trên Chromium và node.js.
Node-chromify, Node.js trong Chrome.
Screen cast từ google về NodeJS trong ứng dụng đóng gói của Chrome.
Kể từ hôm nay, Node.js sẽ không chạy trong NaCl, tuy nhiên cuối cùng cũng có thể. Nút sử dụng công cụ JavaScript V8 để thực thi mã. Hiện tại không có cổng đáng tin cậy của động cơ V8 sẽ chạy trong NaCl.
Từ một lời nhận xét của Brad Chen vào ngày 28 Tháng 1 năm 2014, trong chủ đề "Có ai đã thử porting Blink và V8 để Native Client?":
V8 đã được chuyển đến Native Client, mặc dù cảng đã sử dụng một thủ thuật không mong muốn của về việc tạo V8 hướng dẫn ARM và sau đó sử dụng thông dịch viên ARM di động để tránh cần phải chuyển mã máy phát điện V8 sang NaCl. Bạn có thể quan sát điều này bằng cách xem nguồn V8 và làm theo hướng dẫn xây dựng/thử nghiệm tiêu chuẩn bằng cách sử dụng các mục tiêu nacl_ia32 hoặc nacl_x64.
https://groups.google.com/d/msg/native-client-discuss/Xw5yCe3Ubwc/fgm6M092DXwJ
Xét rằng V8 đã được thể chạy dưới NaCl, mặc dù với một hack không đáng tin cậy, đó là hợp lý để giả định Node mà cuối cùng có thể có thể chạy trong NaCl.Tôi nhận ra câu hỏi của bạn bây giờ đã được ba tuổi nhưng tôi nghĩ rằng tôi sẽ cung cấp một câu trả lời cập nhật kể từ khi chạy mã nguồn gốc (ngay cả mã OpenGL) trong trình duyệt hiện nay là hiện thực.
nút được viết bằng C: http://hackermedley.org/new-web-tech/ Khi ứng dụng gốc cho chrome sẽ cho phép sử dụng mã gốc trong trình duyệt, tôi nghĩ có thể nút được sử dụng .. – Sycren
Gần đây tôi đã xây dựng 0.5.0pre của node.js và thư mục src có đầy đủ các tệp .cc với các dòng như sau: static Persistent
@Sycren: Điều đó tùy thuộc vào cách bạn xác định bằng văn bản. Node.js chủ yếu là V8 và V8 là C++! – adamse