2011-11-10 4 views
9

Tôi gặp sự cố khi tải thư viện socket.io cho mã máy khách JS của mình trên ứng dụng Node.js được lưu trữ trên Heroku.Socket.io trên Heroku: mã phía máy khách

Còn bây giờ, tôi có dòng này vào cuối của file index.html của tôi:

<script type="text/javascript" src="/socket.io/socket.io.js"></script> 

Nhưng sau đó, khi tôi làm socket = io.connect('http://myherokuapp'); trong mã khách hàng JS của tôi, tôi nhận được một dự kiến ​​'io không được định nghĩa ' lỗi.

Bất kỳ ý tưởng nào về cách tải đúng thư viện trên Heroku?

Cảm ơn!

+0

ok vì vậy cuối cùng tôi đã cố gắng đẩy thư viện phía máy khách "thủ công" bằng phần còn lại của ứng dụng của tôi. Dường như nó hoạt động nhưng bây giờ tôi chạy trong một vấn đề mới trong khi khởi tạo socket.io.js: http: //myherokuapp/socket.io/1/? T = 1320939716103 & jsonp = 0 được gọi tại một số điểm và trả về 404 no Object tìm. – Johanisma

Trả lời

8

Ok vì vậy tôi cuối cùng đã tìm được cách của mình. Tôi đang chia sẻ trong trường hợp nó giúp ai đó.

tôi tải các kịch bản trong index.html theo cách này:

<script type="text/javascript" src="http://myapp.herokuapp.com/socket.io/socket.io.js"></script> 

Nó có ý nghĩa bởi vì các thư viện client-side là thực sự nạp từ máy chủ nút và không nên được đẩy bằng tay.

Trong file JS client-side của tôi, tôi nhanh chóng các ổ cắm theo cách này:

socket = io.connect('http://myapp.herokuapp.com/'); 

Ngoài ra, và điều này nằm ngoài phạm vi của câu hỏi này, nhưng bạn không thể sử dụng WebSocket trên Heroku cho bây giờ. Họ có một chút lưu ý về điều đó here.

Hy vọng điều này sẽ hữu ích!

+0

Sau khi thay đổi mã này, Ứng dụng của bạn có hoạt động ở máy chủ Heroku không? Tôi cũng phải đối mặt với cùng một vấn đề và chưa giải quyết được. Tôi nhận được socket.io.js không tìm thấy lỗi 404. Tôi sẽ thử mã của bạn sau ngày hôm nay. Ứng dụng của bạn có hoạt động ở máy chủ Heroku không? Bạn có thể chia sẻ URL nếu nó hoạt động không? – jeewan