首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  Java

一个配置了 spirng mvc 服务器的 Java web 服务器,如何与带有 gps 模块的单片机进行 socket 的通信?

  •  
  •   tctc4869 · 32 天前 · 2727 次点击
    这是一个创建于 32 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用的不是 spring boot,是自己搭建的 ssm 架构,我记得 spring mvc 有一个 WebSocket 的 jar 包,我百度了一下,那个 jar 包好像是专门用于浏览器与服务器之间的。

    我要用一个 4g 模块的单片机向服务器发起 tcp 通信或者 udp 通信,将位置数据发送给服务器,那个 WebSokcet.jar 包能做这些.或者有现成样例代码可以参考吗

    首先这个单片机,根据测试软件的测试结果,该单片机好像是支持 socket 服务的。

    26 回复  |  直到 2019-10-17 16:37:21 +08:00
        1
    momocraft   32 天前
    websocket 不是浏览器专用的

    但是 socket 不是 websocket
        2
    qping   32 天前
    websocket 是应用层协议,在 tcp/ip 之上,你需要的是 java socket
        3
    tctc4869   32 天前
    @qping 那要怎么在 Spring mvc 用 socket 的?这个我不会啊
        4
    tanranran   32 天前
    @tctc4869 #3 #3 百度 谷歌会不会,这个和 spring 没关系
        5
    tctc4869   32 天前
    @qping 或者说是不是只有要在 web 程序开始的时候,加载一段服务端 socket 代码,用 white 循环死循环套住,不停的等待接收数据?
        6
    qping   32 天前
    @tctc4869 #5 bingo
        7
    tctc4869   32 天前
    @tanranran 我目前的思路就是在 web 程序加载的时候所运行的方法里,加载一个服务端的 socket 的一段代码,并用死循环套住。这样的话,会有什么问题吗
        8
    tctc4869   32 天前
    @momocraft 那 websocket 能与非浏览器的应用程序或者是硬件设备进行通信吗
        9
    misaka19000   32 天前
    netty
        10
    momocraft   32 天前
    如果开发者会写,能 @tctc4869
        11
    wccc   32 天前
    netty mina
        12
    alienx717   32 天前
    利用这些 netty mina tio smart-socket 框架收发消息、暴露 tcp 端口。
    终端连接到服务端的这个端口发送报文。
    根据协议在收到消息的那个 handler 中解析。
    也可以先在 decoder 那层解析后封装到自定义的对象里面。
        13
    lqw3030   32 天前
    你说的 tcp 和 udp 归属传输层协议,我们 spring mvc 处理的都是应用层协议,所以你需要的应该是 netty
        14
    knva   32 天前
    再起一个服务,专门用于通信, 用数据库跟 web 层交互
        15
    yplam   32 天前
    如果要自己造轮子的话就 netty

    简单的话就 mqtt
        16
    leafre   32 天前
    netty
        17
    gz911122   32 天前
    netty 简单一些

    vertx 基于 netty 封装了一层,用起来更简单一些
        18
    andychen20121130   32 天前
    websocket 协议不一样。
    netty 吧。 我有一套代码。
        19
    opengps   32 天前
    socket 服务端可以认为是独立的,不管你借助什么形式运行都可以,只是需要额外注意对外公开端口
        20
    ESeanZ   32 天前
    单片机、物联网应该用 MQTT 吧。
        21
    hugedata   32 天前
    你的 spring MVC 写一个接收 post 消息的 action,根据结果,返回 json,单片机中看你用的具体哪个系统,有没有移植好的 curl,有的话,c\C++\shell 等任意语言调用 curl 命令,没有的话,自己找该系统提供的 http 请求组件,然后用它访问你的 springMVC 的这个 action,带上 post 数据,以 post 方式提交。然后根据结果判断提交是否成功。这么简单的事情。。。。贵司就没有人能想明白吗?
        22
    mango88   32 天前
    仅仅用来上传 gps 等位置数据,服务器不需要与设备交互等需求
    不需要用到长连接通讯吧
    发起一个 http request 有啥不能解决的
        23
    zhenjiachen   32 天前
    Spring 不是有个 RSocket 吗,好像可以和 Spring MVC 一起用?
        24
    tctc4869   32 天前
    @hugedata 这个单片机可以发 http 请求,我一开始想用 http 的,用 at 命令可以得到 gps 数据,不过目前,只能发手动填写的数据,发不了 gps 上去。用 tcp 好像可以。
    用 http 发 gps 数据有一个问题。做不到用 at 命令进行中转,我向同事咨询过,能不能通过 c 语言中转,先发获得 gps 的 at 命令,然后通过 c 语言字符数组做到拼接得到的 gps 数据作为 http 通信请求路径的数据位,再通过 at 命令发一个 post 请求。他回答这个单片机不行。我很久没接触 c 语言了。

    这边有用单片机向 tcp 发送到其他网站测试的例子
        25
    tctc4869   32 天前
    @mango88 参考楼上
        26
    hugedata   32 天前
    你的 spring MVC 写一个接收 post 消息的 action,根据结果,返回 json,单片机中看你用的具体哪个系统,有没有移植好的 curl,有的话,c\C++\shell 等任意语言调用 curl 命令,没有的话,自己找该系统提供的 http 请求组件,然后用它访问你的 springMVC 的这个 action,带上 post 数据,以 post 方式提交。然后根据结果判断提交是否成功。这么简单的事情。。。。贵司就没有人能想明白吗?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   954 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 39ms · UTC 19:55 · PVG 03:55 · LAX 11:55 · JFK 14:55
    ♥ Do have faith in what you're doing.