在网络套接字上可以使用不同的语言吗?
当我想在我的应用程序上尝试Web套接字技术时,我遇到了问题。 但我想问一下关于web套接字的要求。
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)是否支持所有机器? 或浏览器?我是网络套接字编程新手,请帮助我
感谢您的回答...
是的,你可以用你想要的任何语言来构建服务器,但是web套接字不是一个简单的套接字,它们是“遵循”特定协议的套接字,因此请确保你阅读了此协议的规范并在服务器上实现它任何浏览器都能够建立与它的连接。
你也可以用任何语言编写客户端,但是如果你不使用JavaScript,那么我不明白你为什么要使用web套接字而不是使用简单的套接字。 但是,如果你想,只要看看浏览器发送到Web套接字服务器的数据,并从你自己的客户端模拟它。
为了阐述达美航空的答案,“websockets”是HTTP协议的一种变体,客户端发送HTTP请求消息,服务器发送HTTP响应,然后客户端和服务器使用仍然打开的TCP / IP连接执行“其他事情”。 请求和响应包含特殊的头文件,允许客户端和服务器同意以这种方式使用连接。
为了实现这个目标,客户端和服务器都需要至少了解HTTP协议的一个子集才能完成最初的“握手”。 因此,您不能简单地使用websocket客户端与简单的套接字服务器进行通信,反之亦然。 (如果你试图这样做,两端都会看到意外的东西/协议错误,websocket端应该及时关闭TCP / IP连接的结束。)
话虽如此,websocket客户端和websocket服务器可以用任何现代编程语言来实现。 (对于普通套接字客户端和服务器也是如此。)
套接字是一个操作系统的东西。 你可以使用任何提供相关接口或粘合代码的语言来实现它们的操作系统调用(例如在Linux上:socket(2),connect(2),accept(2),listen(2),poll(2) ,recv(2)等...)
但是如果你是套接字的新手,我强烈建议你阅读一本好的网络编程书。
链接地址: http://www.djcxy.com/p/7783.html