2010-11-20 46 views
6

Có thể xây dựng một máy chủ web vi mô (bằng chứng về khái niệm) trong Javascript không?Máy chủ web Javascript?

Có ai đã làm điều này trước đây không ?.


EDIT:rõ Rõ ràng rõ ràng là cần thiết ở đây. Câu hỏi cuối cùng về cách đẩy dữ liệu từ máy chủ đến trình duyệt sau khi yêu cầu ban đầu được thực hiện bởi trình duyệt đã bị đóng. Nói cách khác, làm thế nào để làm cho trình duyệt chấp nhận các yêu cầu tiếp theo được khởi xướng bởi một máy chủ.

Máy chủ web dựa trên javascript có cần được cài đặt vào trình duyệt hay không hoặc có phương pháp nào khác không?

+2

để làm rõ, lý do cho câu hỏi của tôi là để có thể thực hiện một loại '' cơ chế gọi lại nghèo của con người qua HTTP. trong otherwords , Tôi muốn có thể chạy máy chủ web trong trình duyệt máy khách, để máy chủ từ xa có thể gửi dữ liệu đến trình duyệt máy khách (embedded server in). y, bạn nhận được quan điểm của tôi .. – skyeagle

+0

Có lẽ bạn nên google cho "ổ cắm web", nhưng tôi không nghĩ rằng bạn sẽ có thể thực hiện một kiến ​​trúc khá giống như những gì bạn mô tả. – Pointy

+2

Node.js chạy trên máy chủ (như tên _web-server_ đề xuất). – jwueller

Trả lời

3

Nếu bạn nói rằng bạn muốn có thể để đẩy dữ liệu để trình duyệt mà đã bắt đầu tiếp xúc với máy chủ của bạn, tôi muốn làm một số nghiên cứu về Máy chủ sao lưu.

Tôi không biết bất cứ điều gì về nó, vì vậy tôi sẽ chỉ bỏ qua một vài liên kết đến bạn mà hy vọng sẽ chỉ cho bạn đi đúng hướng.

From Wikipedia Comet_(programming)

Comet là một mô hình ứng dụng web trong đó một yêu cầu HTTP lâu nay cho phép một máy chủ web để đẩy dữ liệu vào một trình duyệt, mà không cần trình duyệt yêu cầu nó một cách rõ ràng. 1 Sao chổi là một thuật ngữ ô, bao gồm nhiều kỹ thuật để đạt được sự tương tác này. Tất cả các phương pháp này dựa vào các tính năng được bao gồm theo mặc định trong các trình duyệt, chẳng hạn như JavaScript, thay vì các plugin không mặc định. Cách tiếp cận Comet khác với mô hình ban đầu của trang web, trong đó trình duyệt yêu cầu một trang web hoàn chỉnh tại một thời điểm. [3]

Đây là tên gọi là APE. Tôi không biết gì về nó, nhưng bạn có thể thấy nó hữu ích.

From the APE site:

APE là một giải pháp đầy đủ tính năng OpenSource thiết kế cho Ajax Push. Nó bao gồm một máy chủ sao chổi và một khung Javascript. APE cho phép thực hiện bất kỳ loại dữ liệu thời gian thực nào trực tuyến tới trình duyệt web, mà không phải cài đặt bất kỳ thứ gì ở phía máy khách.

+1

THATS những gì tôi đang nói về !. Tiết kiệm cho tôi phải tái tạo lại bánh xe – skyeagle

+1

có lẽ câu hỏi là khung kém nhưng tôi không nhận được ở tất cả những gì điều này đã làm với một máy chủ web JS ?? Câu trả lời của Pointy là tốt, mặc dù! – oberhamsi

+3

@oberhamsi: Vì vậy, bạn đã bỏ phiếu cho tôi? Hóa ra đây chính là * chính xác * những gì OP muốn. Dành thời gian đọc nhận xét phía trên của bạn. Đó là từ OP nói rằng nó trả lời câu hỏi. Lý do tôi để lại câu trả lời này là tôi đã làm những gì bạn rõ ràng không dành thời gian để làm. Tôi đọc qua các cuộc đối thoại trong các bình luận khác, và suy luận rằng đây là những gì OP cần thiết, nhưng không biết làm thế nào để cụm từ nó. Nếu bạn làm như vậy, bạn sẽ thấy rằng OP muốn * yêu cầu * originate từ máy chủ đến trình duyệt, điều này chỉ có ý nghĩa nếu trình duyệt đưa ra yêu cầu ban đầu. Ít nhất bạn cũng nhận xét. – user113716

15

Kiểm tra dự án RingoJS hoặc Node.js. Câu trả lời là "có" và không chỉ "vi mô" hoặc "bằng chứng về khái niệm".

RingoJS

Node.js

express.js framework for node

+1

Vame trên nodeJS một vài ngày trước. Nó không phải là rõ ràng với tôi nếu mã được viết bằng cách sử dụng node.js có thể được chạy trong một trình duyệt (đó là những gì tôi đang cố gắng để làm). Bạn có thể xác nhận liệu máy chủ web được viết bằng cách sử dụng node.js có thể chạy trong trình duyệt thông thường không? – skyeagle

+1

@skyeagle: Ý bạn là gì khi _ "chạy trong trình duyệt" _? – jwueller

+3

Không, node.js là công nghệ ** phía máy chủ **. Nó là dựa trên Javascript, do đó, tất nhiên * một số * mã có thể được phổ biến giữa trình duyệt và máy chủ, nhưng bạn không thể thực sự thực hiện một máy chủ trong một trình duyệt vì rất nhiều lý do. – Pointy

1

Có một tiện ích bổ sung cho Firefox (cũng có sẵn dưới dạng ứng dụng dành riêng cho máy tính để bàn) được gọi là Plain Old Webserver. Nó có thể chạy một loại JavaScript phía máy chủ đặc biệt có quyền truy cập vào tất cả các tính năng nội bộ của trình duyệt web, bao gồm tệp cục bộ và truy cập cơ sở dữ liệu SQLite, truy cập vào các tùy chọn và lịch sử của trình duyệt và mọi thứ khác có thể được thực hiện với một add-on của Firefox.

0

Bạn đã xem Juggernaut chưa? https://github.com/maccman/juggernaut/blob/master/README.md Bạn sẽ phải tha thứ, tôi không chắc chắn nếu điều này chính xác những gì bạn đang tìm kiếm, và là một chút của một noob, nhưng readme làm cho nó âm thanh như phù hợp cho những gì bạn đang mô tả.

0

JS HTTPD

http://acme.com/software/js_httpd/

Là một máy chủ HTTP UNIX nhỏ viết bằng JavaScript.

Nó chạy từ inetd, có nghĩa là hiệu suất của nó kém. Nhưng đối với các trang có lưu lượng truy cập thấp, nó khá đầy đủ. Công cụ này triển khai tất cả các tính năng cơ bản của máy chủ HTTP, bao gồm:

  • Bảo mật chống lại ".." tên tệp snooping.
  • Các loại MIME phổ biến.
  • Chuyển hướng cắt-lát.
  • index.html
  • Danh sách thư mục.

js_httpd cũng có thể được sử dụng để phân phối HTTPS bằng cách gói nó bằng stunnel. Hướng dẫn được bao gồm.

nhỏ và/hoặc lạ máy chủ web khác (tất cả chạy từ inetd):.

http://acme.com/software/js_httpd/

+0

Tiêu đề của câu Hỏi & Đáp này phải được thay đổi để phản ánh rằng máy chủ web javascript không được yêu cầu :) Tôi cũng sẽ thông báo về máy chủ web javascript có thể được sử dụng cho các bài kiểm tra đơn vị hoặc không: https: //developer.mozilla .org/en-US/docs/Httpd.js/HTTP_server_for_unit_tests – Motin

0

Bạn có thể thử "ewsjs là một máy chủ Web nhúng bên trong trình duyệt của bạn Khi xây dựng dựa trên Ajax và đơn các ứng dụng trang, thường rất khó để kiểm tra các ứng dụng này cho đến khi một máy chủ Web được đặt đúng vị trí. (...)

EWS cung cấp một máy chủ Web được nhúng vào ứng dụng Ajax của bạn như thể nó đến từ máy chủ Bạn có thể đặt vào bất kỳ logic nào và kiểm tra đầy đủ ứng dụng Ajax của bạn trong trình duyệt, mà không có runni ng một máy chủ.

EWS hỗ trợ một số tính năng chính: Đăng ký bộ xử lý cho đường dẫn bất kỳ, Đăng ký trình xử lý tự động (khi không có trình xử lý khác), Viết lại một đường dẫn đến đường dẫn khác (như trong Apache hoặc nginx), không đồng bộ (chính xác bắt chước cuộc gọi ajax true)"

trên https://github.com/deitch/ewsjs

Các vấn đề liên quan