5

Năm trước, tôi đã tạo một cộng tác lập trình trong Đại học Đa dạng MOO - một phòng được viết bằng MOOcode sử dụng TCP/IP để giao tiếp với máy chủ perl trở lại tại trường của tôi để biên dịch và thực thi C, Perl, Bash và các chương trình khác và trả lại kết quả cho cộng tác MOO - tất cả để thể hiện ngôn ngữ lập trình trong môi trường giảng dạy MOO. Ứng dụng này thường là một sự romp trong năm hoặc sáu ngôn ngữ và thú vị để chơi với. Bây giờ tôi muốn làm điều tương tự trong SecondLife sử dụng LSL. Đề nghị duy nhất tôi đã nhận được cho đến nay từ đám đông đó là sử dụng một yêu cầu WWW, giả sử xây dựng một thông điệp POST http cho một quá trình CGI. Tôi không bao giờ quan tâm nhiều cho các hình thức html vì vậy tôi muốn sử dụng TCP/IP hoặc một số giao thức truyền thông khác. Có ai đã cố gắng này, những người muốn chăm sóc để cung cấp một vài gợi ý? Có một số trang web giới thiệu LSL tốt trong SecondLife nhưng tôi muốn giới thiệu các trình biên dịch và ngôn ngữ kịch bản khác, thậm chí có thể PowerShell. Dick S.LSL thông tin liên lạc

Trả lời

5

REST hiện đang trong thời trang cho dịch vụ web. Không có lý do thực sự để có được xuống lớp TCP/IP cho một cái gì đó mà từ mô tả của bạn không yêu cầu hiệu suất siêu hoặc thời gian đáp ứng. Hỗ trợ LSL HTTP khá tốt nên bạn không gặp bất kỳ vấn đề gì. Tất nhiên nó không phải là lý tưởng để có được đầu ra của các chương trình của bạn trở lại trong thời gian thực - cho rằng bạn sẽ cần phải mở kết nối http trên máy chủ và liên tục viết cho cơ thể của trang (trong khi khách hàng sẽ đọc cái đó). Nhưng ngay cả khi đi qua lại giữa máy chủ và máy khách, bạn sẽ có được trải nghiệm tốt vừa phải.

4

Tùy chọn liên lạc bên ngoài của LSL được giới hạn trong ba tùy chọn cụ thể. Wiki LSL chính thức cung cấp thông tin chi tiết hơn về mỗi tùy chọn.

  • HTTP liệu: yêu cầu phải được khởi xướng bởi LSL kịch bản
  • XMLHTTP: yêu cầu phải được khởi xướng bởi dịch vụ bên ngoài
  • Email: đầy đủ thông tin liên lạc hai chiều, nhưng với giờ giấc ngủ bắt buộc .
2

Tôi có xu hướng đồng ý với Ilya. Tốt nhất bạn có thể có thể kéo nếu bạn muốn kịch bản được đáp ứng rất nhanh là để mã phía máy chủ của bạn gọi lại cho đối tượng khi máy chủ được nhận biết về nó bằng cách sử dụng XML-RPC.

Các wiki chính cho Second Life là khá tốt cho mẫu mã vv XML-RPC

2

chức năng llHTTPRequest LSL và sự kiện tương ứng http_response chắc chắn đặt cược tốt nhất của bạn.

Trái ngược với giả định đặt ra trong câu hỏi của bạn, việc sử dụng http không bắt buộc phải sử dụng "biểu mẫu html". Khối lượng POST (hoặc PUT) có thể chứa dữ liệu được sắp xếp theo cách bạn muốn. Giao diện REST là một cách hay để thực hiện loại giao tiếp http máy-với-máy mà chúng ta đang nói đến. Một lợi thế của REST trên html hoặc xml là REST có thể tiết kiệm hơn rất nhiều. Điều này rất quan trọng khi bạn bắt đầu tiếp cận giới hạn ký tự 2048 của LSL đối với các câu trả lời http.

Mặc dù LSL có hai phương pháp giao tiếp khác với phần còn lại của Internet (email và xml-rpc), việc sử dụng chúng trong các tập lệnh LSL là cao không khuyến khích những ngày này. Cả hai hệ thống này (hiện đang được triển khai trong Second Life) đều dựa vào các máy chủ tập trung để định tuyến các thông điệp đến các đích của chúng. Điều này không quy mô tốt. Các máy chủ này đang chịu tải ngày càng tăng khi Second Life phát triển.Mặt khác, llHTTPRequest chạy hoàn toàn trên trình mô phỏng chạy tập lệnh của bạn, điều đó có nghĩa là bạn không phải lo lắng về việc thiếu thư vì các máy chủ trung tâm quá tải.

Cuối cùng, sẽ sớm có một tính năng mới được thêm vào LSL cho phép bất kỳ tập lệnh nào hoạt động như một máy chủ http (xem http://wiki.secondlife.com/wiki/LSL_http_server). Hiện tại (tính đến tháng 6 năm 2009) đã triển khai trên lưới beta, nhưng phải nằm trên lưới chính với bản cập nhật lớn tiếp theo. Với bổ sung này, nhiều chương trình LSL-to-web hiện tại thường xuyên thăm dò ý kiến ​​một máy chủ web để cập nhật dữ liệu thay vào đó sẽ có thể cập nhật được đẩy cho chúng khi chúng xảy ra.

0

Như Ilya đã nói, REST và LSL-HTTP sẽ là con đường để đi.

Các thực hiện mới của JSON trong Linden Scripting Ngôn ngữ sẽ giúp với điều đó. Bạn có thể muốn bắt đầu đọc trang Json usage in LSL trên wiki chính thức.

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