本地websocket ip,与websocket密切接触

 admin   2024-02-05 18:07   29 人阅读  0 条评论

这篇文章讲解一些关于与websocket密切接触和本地websocket ip的题,希望帮助到大家。


什么是网络套接字?


正义


Websocket是一种持久性网络通信协议,能够在单个TCP连接中进行全双工通信,没有Request和Response的概念,它们的状态完全相同,一旦建立连接,就可以进行实时通信。它是在客户端和服务器之间完成的。双向数据传输


联系和差异


HTTP协议


HTTP是一种非持久性协议,因此如果客户端想了解服务器的处理情况,可以单独使用Ajax连续轮询或使用长轮询。然而,前者给服务器带来了巨大的压力,而后者则因等待响应而被阻塞。


虽然和indexjs文件


索引html


lt;htmlgt;lt;bodygt;lt;scriptsrc=34;gt;lt;/scriptgt;lt;/bodygt;lt;/htmlgt;indexjs


//使用WebSocket地址打开到服务器的连接letws=newWebSocket39;//指定打开后动作,连接后运行的事件wsonopen==gt;//接收服务器发送的消息wsonmessage=事件=>;//指定关闭后运行的事件wsonclose==gt;上述URL为本地节点打开的服务地址,分别指定了连接、关闭、消息接收的执行事件,并连接为HTML。打印ws信息


打印一个openconnection表示连接成功,客户端使用onmessage处理接收。


事件参数包含有关此通信的详细信息,服务器返回的消息包含在事件的数据属性中。


如需发送消息并打印事件返回信息,请在控制台中手动调用send。


服务器定期发送


上面是从客户端发送消息并从服务器返回消息。还可以使用setInterval让服务器在固定时间向客户端发送消息。


serverjs修改如下


//WebSocket从外部连接时wsson39;ws=gt;1000;-//监听消息设置并接收客户端发送的消息-wson39;data=gt;//WebSocket连接时连接连接这将关闭wson39;=gt;一旦客户端连接并运行它,它将定期接收它,直到WebSocket服务关闭。


多方聊天


当多个客户端按上述方式连接时,只返回各自发送的消息,首先我们注释为定期发送到服务器,并打开两个窗口进行模拟。


如果您想在客户端之间共享消息并同时接收服务器返回的消息怎么办?


您可以使用客户端查找所有当前连接的客户端并向每个客户端发送返回消息。


修改serverjs如下


//如果是外部连接WebSocket,则运行wsson39;ws=gt;1000;+//设置对客户端发送和接收的消息的监听+wson39;data=gt;+;//当WebSocketwson39时;=>;连接关闭时执行。这样,无论哪个客户端发送了消息,服务器都可以将消息重新发送给每个客户端。


可以观察连接信息


总结


我知道纸上学终究是庸俗的,但是这个题需要实践。希望大家通过上面的例子能够消化理论。设置服务器后,您还可以自己使用测试工具来享受一些乐趣。


首先,两者的使用层次是有区别的,Sockets是传输控制层协议,而WebSockets是应用层协议。Socket是应用层与TCP/IP协议系列之间通信的中间软件抽象层,是一组接口而不是一个协议,是为了方便使用TCP或UDP而进行的抽象层,位于两层。一组应用层和传输控制层接口。


在设计模式下,套接字实际上处于装饰模式,将复杂的TCP/IP协议套件隐藏在套接字接口后面。使用TCP/IP协议建立TCP连接。-TCP连接更多地依赖于底层IP协议,而IP协议连接依赖于较低层,例如链路层。WebSocket是一种常见的应用层协议。


灵活程度各不相同。WebSocket更容易使用,Socket更灵活。套接字是用于应用层和TCP/IP协议族之间通信的中间软件抽象层,是一组接口。在设计模式下,套接字实际上处于装饰模式,将复杂的TCP/IP协议套件隐藏在套接字接口后面。用户所需要的只是一组简单的接口来配置数据以确保套接字满足指定的要求。协议。


主机A上的应用程序要与主机B上的应用程序通信,必须通过套接字建立连接,而建立套接字连接需要底层TCP/IP协议建立TCP连接。建立TCP连接需要底层IP协议来寻址网络上的主机。


这是两个跨计算机的进程,如果需要通信,则必须通过网络进行连接。这就是套接字的作用。例如,如果两台计算机上存在两个进程,则其中一个进程应该处于被动方,称为服务器。其他活跃方称为客户。它们位于称为主机的特定计算机上,并在网络上拥有自己的IP地址。一台作为服务器的计算机可以有多个进程,但由于每台计算机只有一个IP,因此它们通过不同的端口号来区分。因此,服务器程序必须绑定到本地系统上的特定端口号。客户端必须声明其连接的地址和端口。


两个进程可以通过网络建立通信通道,然后通过recvsend发送和接收一些信息,完成通信。因此,套接字代表承载此通信的系统资源的标识符。


一、什么是跨域以及解决方法?

跨域是指网页上的脚本尝试访不同来源的资源时,浏览器中出现的跨域题。出于安全考虑,浏览器会跨域访,以防止恶意网站窃取用户信息或进行其他攻击。


典型的跨域解决方案是


JSONP动态创建标签,将想要获取的数据包装在回调函数中并返回,利用标签的跨域特性实现跨域请求。


CORS在服务器端设置响应头,以允许指定来源的跨域访。通过将Access-Control-Allow-Origin字段添加到响应标头并指定允许访的源,可以实现跨域资源共享。


代理服务器同源策略下,您可以在自己的服务器上设置代理,将跨域请求转发到目的服务器,然后将响应返回给客户端。此方法需要您自己设置代理服务器。


WebSocketWebSocket协议本身支持域间通信,WebSocket允许在域之间建立双向通信。


上述解决方案可能并不适用于所有情况,具体解决方案应根据实际情况确定。一些较新的浏览器还提供了一些新的跨域解决方案,例如使用FetchAPI的mode参数设置为cors来实现跨域请求。


本文地址:http://eptisonshop.com/post/36273.html
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?