Javascript javasocket和jswebsocket
所以我试图在我的Java应用程序和我的Web应用程序之间建立某种连接,我查找了WebSocket,它们看起来非常简单且易于使用:)。我自己创建了一个Java服务器,它使用ServerSocket类 现在的问题是我可以通过websocket从web连接到服务器,但我无法向服务器发送数据。。。但是当我尝试从Java客户端发送数据时,它工作得很好。。。有什么问题吗 我的Java/Scala(我遵循本教程:)服务器: 我的web js(我遵循):Javascript javasocket和jswebsocket,javascript,java,sockets,networking,websocket,Javascript,Java,Sockets,Networking,Websocket,所以我试图在我的Java应用程序和我的Web应用程序之间建立某种连接,我查找了WebSocket,它们看起来非常简单且易于使用:)。我自己创建了一个Java服务器,它使用ServerSocket类 现在的问题是我可以通过websocket从web连接到服务器,但我无法向服务器发送数据。。。但是当我尝试从Java客户端发送数据时,它工作得很好。。。有什么问题吗 我的Java/Scala(我遵循本教程:)服务器: 我的web js(我遵循): web套接字服务器与简单的套接字服务器不同。提供web套
web套接字服务器与简单的套接字服务器不同。提供web套接字的服务器必须首先提供HTTP或HTTPS服务,因为web套接字是在web客户端发送带有升级选项和用于建立web套接字的特殊字段的HTTP请求时建立的。即使在web套接字建立之后,连接的行为仍然与常规套接字不同。Web套接字协议使用帧发送或接收数据。这与你所期望的完全不同
您应该注意的另一件事是,浏览器将强制执行以下规则:web套接字必须来自与尝试建立web套接字的页面相同的主机(相同的协议、地址和TCP端口)。web套接字服务器与简单套接字服务器不同。提供web套接字的服务器必须首先提供HTTP或HTTPS服务,因为web套接字是在web客户端发送带有升级选项和用于建立web套接字的特殊字段的HTTP请求时建立的。即使在web套接字建立之后,连接的行为仍然与常规套接字不同。Web套接字协议使用帧发送或接收数据。这与你所期望的完全不同
您应该注意的另一件事是,浏览器将强制执行一条规则,即web套接字必须来自与尝试建立web套接字的页面相同的主机(相同的协议、地址和TCP端口)。好的,谢谢:)所以我最好的办法是找到一个java库,以便与js websockets进行通信?是吗?您需要更进一步,找到一个支持web套接字的web服务器环境/库。好的,谢谢:)那么我最好的办法是找到一个java库,用于与js websockets通信?对吗?您需要更进一步,找到一个支持web套接字的web服务器环境/库。
class Server(val port: Int) extends Thread {
private val serverSocket = new ServerSocket(port)
override def run(): Unit = {
try {
while(true) {
println("Waiting for client on port: " + serverSocket.getLocalPort)
val server = serverSocket.accept()
println(server.getRemoteSocketAddress)
val in = new DataInputStream(server.getInputStream())
println(in.readUTF())
val out = new DataOutputStream(server.getOutputStream())
out.writeUTF("Hello world!")
server.close()
}
} catch {
case s: SocketTimeoutException => println("Connection timed out!");
case e: Exception => e.printStackTrace()
}
}
}
/**
* Created by samuelkodytek on 20/12/2016.
*/
var conn = new WebSocket('ws://127.0.0.1:8080');
conn.onopen = function(e) {
console.log("Connection established!");
conn.send("Hello!");
};
conn.onmessage = function(e) {
console.log(e.data);
};