Возможен ли другой язык в веб-сокете? - PullRequest
1 голос
/ 28 февраля 2012

У меня проблема, когда я хочу попробовать в своем приложении технологию веб-сокетов.но я хочу спросить о требовании веб-сокета.

1) возможно я использую Сервер с языком JavaScript, например socket.io

var io = require('socket.io').listen(3001);

io.sockets.on('connection', function (socket) {
  socket.emit('news', {hello: 'can you hear me'});
});

иклиент, использующий пример языка Java: socket.io.java Я использую этот метод для получения сообщения от сервера

public void onMessage(JSONObject json, IOAcknowledge ack) {
                Log.d("We received a message: " , json.toString());
            }

с моим сервером сокетов:

SocketIO socket = new SocketIO("http://127.0.0.1:3001/news");

2) есть поддержка всей машины?или браузер? Я новичок в программировании сетевых сокетов, пожалуйста, помогите мне

спасибо за ваш ответ ...

Ответы [ 3 ]

3 голосов
/ 28 февраля 2012

Да, вы можете собрать сервер на любом языке, который вам нужен, но веб-сокеты - это не просто сокет, это сокеты, которые «следуют» определенному протоколу, поэтому убедитесь, что вы прочитали спецификацию этого протокола и применили его наваш сервер, так что любой браузер сможет установить соединение с ним.

И вы также можете написать клиент на любом языке, но если вы не используете javascript, то я не понимаю, почему вы будете использоватьвеб-сокеты вместо использования простого сокета.Но если вы хотите, просто посмотрите, какие данные браузер отправляет на сервер веб-сокетов, и эмулируйте их с вашего собственного клиента.

1 голос
/ 28 февраля 2012

Чтобы уточнить ответ Delta, «websockets» - это разновидность протокола HTTP, когда клиент отправляет сообщение HTTP-запроса, сервер отправляет ответ HTTP, а затем клиент и сервер используют все еще открытое соединение TCP / IP.делать "другие вещи".Запрос и ответ содержат специальные заголовки, которые позволяют клиенту и серверу согласиться использовать соединение таким образом.

Для того, чтобы это работало, клиент и сервер должны понимать хотя бы подмножествоПротокол HTTP для того, чтобы сделать первоначальное «рукопожатие».Следовательно, вы не можете просто использовать клиент веб-сокета для общения с простым сервером сокетов ... или наоборот.(Если вы попытаетесь это сделать, оба конца увидят непредвиденные ошибки в протоколе / материале. И конец веб-сокета должен немедленно закрыть свой конец соединения TCP / IP.)

Сказав, чтоклиент websocket и сервер websocket могут быть реализованы практически на любом современном языке программирования.(То же самое относится и к обычным сокетным клиентам и серверам.)

0 голосов
/ 28 февраля 2012

Сокеты - это вещь операционной системы. Вы можете использовать их на любом языке, предоставляя соответствующий интерфейс или связующий код для работающих системных вызовов , реализующих их (например, в Linux: socket (2) , connect (2) , accept (2) , listen (2) , poll (2) , recv (2) etc .. .)

Но если вы новичок в работе с сокетами, я настоятельно рекомендую прочитать хорошую книгу по сетевому программированию .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...