在networking套接字上可以使用不同的语言吗?

我有这个问题,当我想在我的应用程序尝试networking套接字技术。 但我想问一下web socket的需求。

1)是posible我使用JavaScript语言的服务器是ex是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)是否支持所有机器? 或浏览器?我是networking套接字编程新手,请帮助我

感谢您的回答…

是的,你可以用你想要的任何语言来构build服务器,但是networking套接字不是一个简单的套接字,它们是“遵循”特定协议的套接字,所以请确保你阅读这个协议的规范并在服务器上实现它任何浏览器都可以build立一个连接。

你也可以用任何语言编写客户端,但是如果你不使用JavaScript,那么我不明白你为什么要使用web套接字而不是使用简单的套接字。 但是,如果你想,只要看看浏览器发送到Web套接字服务器的数据,并从你自己的客户端模拟它。

为了详细阐述Delta的答案,“websockets”是HTTP协议的变体,客户端发送HTTP请求消息,服务器发送HTTP响应,然后客户端和服务器使用仍然打开的TCP / IP连接做“其他事情”。 请求和响应包含特殊的头文件,允许客户端和服务器同意以这种方式使用连接。

为了实现这一点,客户端和服务器都需要至less了解HTTP协议的一个子集,才能进行最初的“握手”。 因此,您不能简单地使用websocket客户端与简单的套接字服务器进行通信,反之亦然。 (如果你这样做的话,两端都会看到意想不到的东西/协议错误,websocket结束时应该及时closuresTCP / IP连接的结束。)

话虽如此,一个WebSocket客户端和一个WebSocket服务器可以用任何现代编程语言来实现。 (对于普通套接字客户端和服务器也是如此。)

套接字是一个操作系统的东西。 (2) , connect(2) , accept(2) , listen(2) , poll(2)等等,你可以用任何提供相关接口或粘合代码的语言来使用它们。 , recv(2)等…)

但是如果你是套接字的新手,我强烈build议你阅读一本好的networking编程书。