2012-06-29 8 views
6

Tôi cố gắng sử dụng Tomcat triển khai WebSockets trên máy cục bộ. Khi tôi chỉ sử dụng tất cả mọi thứ tomcat hoạt động tốt, nhưng khi tôi bắt đầu sử dụng gói Apache + mod_jk + Trình duyệt Tomcat hiển thị cho tôi 'Kết nối với ws: //example.com/test/echoMessage bị gián đoạn trong khi trang đang tải' sau vài giây làm việc. WebSocket kết nối được đóng lại sau này.Kết nối WebSocket bị gián đoạn khi Apache HTTPD ở phía trước của Tomcat

Mọi người có thể cho tôi biết cách khắc phục không?

tôi có: Apache HTTPD 2.2.18, 1.2.37 mod_jk, Tomcat 7.0.28

Đây là mã phía máy chủ mà tôi sử dụng: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/ và phía khách hàng: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/websocket/

trình duyệt: Firefox 12, Chrome 19

+1

Tôi không chắc liệu mod_jk có hỗ trợ websockets hay không :( –

+0

@Gergely Có, có vẻ như Apache (hoặc mod_jk) không chuyển tiếp bất kỳ yêu cầu WebSocket nào tới Tomcat .. – Mark

Trả lời

0

Tôi sẽ nghiên cứu xem Apache mod_proxy có thể chuyển tiếp lưu lượng truy cập một cách minh bạch ở cấp TCP hay không. Vì đó là khả năng cần thiết cho WebSocket để đi qua. IOW: là mod_proxy có thể minh bạch ngược WebSocket proxy lưu lượng truy cập?

Nhưng tại sao bạn lại muốn mang Apache theo đường thẳng? Nó không thêm bất kỳ giá trị nào, chỉ có nhiều phần có thể bị phá vỡ. Đó là cho WebSocket tất nhiên ..

+0

Nếu Và với cấu hình đúng, tích hợp WebSocket với Apache hoạt động tốt và có một số tùy chọn bao gồm pywebsocket (được thiết kế đặc biệt để làm điều đó). Tích hợp dễ dàng với các máy chủ web hiện tại là mục tiêu lớn của nhóm làm việc HyBi và lý do bắt tay WebSocket rất giống HTTP. – kanaka

+0

@oberstet Tôi có dự án làm việc được viết bằng Java (JSP/Servlets) và chạy trên Tomcat với Apache Apache là cho nội dung tĩnh (html, hình ảnh và vv) và SSL, và Tomcat là cho nội dung động. Tôi quyết định thêm trò chuyện websocket nhỏ vào nó. Nếu cuộc trò chuyện này không hoạt động với Apache trước thì tôi cần thêm Tomcat hoặc Jetty mới chỉ để trò chuyện. Đây không phải là ý tưởng hay. – Mark

+0

@oberstet P.S. Và tất nhiên đây không phải là cách đúng để sử dụng Apache Tomcat của tôi bỏ qua Apache. – Mark