在本文中,您将会了解到关于Socket.IO-需求未定义的新资讯,同时我们还将为您解释需求定义错误的相关在本文中,我们将带你探索Socket.IO-需求未定义的奥秘,分析需求定义错误的特点,并给出一些
在本文中,您将会了解到关于Socket.IO-需求未定义的新资讯,同时我们还将为您解释需求定义错误的相关在本文中,我们将带你探索Socket.IO-需求未定义的奥秘,分析需求定义错误的特点,并给出一些关于boost::asio 序列16: tcp::socket 和 udp::socket & socket_basic、c# – System.Net.Sockets.SocketException创建websocket连接时、flask-socketio + vue-socket.io 组合使用 demo、GET http:// localhost:3000 / socket.io / socket.io.js 404(未找到)的实用技巧。
本文目录一览:- Socket.IO-需求未定义(需求定义错误)
- boost::asio 序列16: tcp::socket 和 udp::socket & socket_basic
- c# – System.Net.Sockets.SocketException创建websocket连接时
- flask-socketio + vue-socket.io 组合使用 demo
- GET http:// localhost:3000 / socket.io / socket.io.js 404(未找到)
Socket.IO-需求未定义(需求定义错误)
我正在尝试使socket.io正常工作,但是现在在Chrome中出现错误:
未捕获的ReferenceError:未定义require
client.php:9Uncaught ReferenceError:未定义io
我更改了包含socket.io.js文件的方式,因为它确实不存在:
<script src="/node_modules/socket.io/lib/socket.io.js"></script>
如果我尝试
<script src="/socket.io/socket.io.js"></script>
我得到: 无法加载资源:服务器响应状态为404(未找到)
这是Ubuntu上所有最新消息
我正在使用来自http://socket.io/的服务器代码在与client.php相同的文件夹中使用,并且可以正常工作,名为server.js,仅修改了端口。
答案1
小编典典如果您的脚本不是来自您的网络服务器,则将无法使用:
<script src="/socket.io/socket.io.js"></script>
您必须明确声明主机和端口:
<script src="http://localhost:<port>/socket.io/socket.io.js"></script>
boost::asio 序列16: tcp::socket 和 udp::socket & socket_basic
reactive_socket_service_base execution_context_service_base <reative_socket_service<Porotocol>>
\ |
reactive_socket_service<Protocol>
|
socket_basic io_object_impl<Protocol, Executor> (成员变量) system_executor
\ | |
basic_socket<Protocol, Executor> 其中 Exector =====> executor
/ \
basic_stream_socket<tcp> basic_datagram_socket<udp>
socket_basic:定义socket共用的一些数据类型和选项
shutdown_type | shutdown_receive = BOOST_ASIO_OS_DEF(SHUT_RD), shutdown_send = BOOST_ASIO_OS_DEF(SHUT_WR), shutdown_both = BOOST_ASIO_OS_DEF(SHUT_RDWR) |
message_flags | BOOST_ASIO_STATIC_CONSTANT(int, message_peek = BOOST_ASIO_OS_DEF(MSG_PEEK)); BOOST_ASIO_STATIC_CONSTANT(int, message_out_of_band = BOOST_ASIO_OS_DEF(MSG_OOB)); BOOST_ASIO_STATIC_CONSTANT(int, message_do_not_route = BOOST_ASIO_OS_DEF(MSG_DONTROUTE)); BOOST_ASIO_STATIC_CONSTANT(int, message_end_of_record = BOOST_ASIO_OS_DEF(MSG_EOR)); |
wait_type | enum wait_type /// Wait for a socket to become ready to write. /// Wait for a socket to have error conditions pending. |
SOL_SOCKET/SO_BROADCAST | typedef boost::asio::detail::socket_option::boolean< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_BROADCAST)> broadcast; |
SOL_SOCKET/SO_DEBUG | typedef boost::asio::detail::socket_option::boolean< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_DEBUG)> debug; |
SOL_SOCKET/SO_DONTROUTE | typedef boost::asio::detail::socket_option::boolean< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_DONTROUTE)> do_not_route; |
SOL_SOCKET/SO_KEEPALIVE | typedef boost::asio::detail::socket_option::boolean< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_KEEPALIVE)> keep_alive; |
SOL_SOCKET/SO_SNDBUF | typedef boost::asio::detail::socket_option::integer< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_SNDBUF)> send_buffer_size; |
SOL_SOCKET/SO_SNDLOWAT | typedef boost::asio::detail::socket_option::integer< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_SNDLOWAT)> send_low_watermark; |
SOL_SOCKET/SO_RCVBUF | typedef boost::asio::detail::socket_option::integer< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_RCVBUF)> receive_buffer_size; |
SOL_SOCKET/SO_RCVLOWAT | typedef boost::asio::detail::socket_option::integer< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_RCVLOWAT)> receive_low_watermark; |
SOL_SOCKET/SO_REUSEADDR | typedef boost::asio::detail::socket_option::boolean< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_REUSEADDR)> reuse_address; |
SOL_SOCKET/SO_LINGER | typedef boost::asio::detail::socket_option::linger< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_LINGER)> linger; |
SOL_SOCKET/SO_OOBINLINE | typedef boost::asio::detail::socket_option::boolean< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_OOBINLINE)> out_of_band_inline; |
Socket option to report aborted connections on accept | typedef boost::asio::detail::socket_option::boolean< boost::asio::detail::custom_socket_option_level, boost::asio::detail::enable_connection_aborted_option> enable_connection_aborted; |
the FIONREAD IO control command | typedef boost::asio::detail::io_control::bytes_readable bytes_readable; |
- 点赞
- 收藏
- 分享
-
- 文章举报

c# – System.Net.Sockets.SocketException创建websocket连接时
using System; using WebSocketSharp; namespace WebsocketTest { class Program { public static void Main(string[] args) { try { using (var ws = new WebSocketSharp.WebSocket("ws://192.168.18.186:7884")) { Console.WriteLine("started"); ws.Connect(); ws.Send("START"); Console.ReadLine(); } }catch(Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); } } } }
但是我无法创建与在另一台机器上运行的websocket服务器的连接.我收到这样的错误信息
09-05-2017 16:20:41|Fatal|WebSocket.connect:0|System.Net.sockets.socketException (0x80004005): No connection Could be made because the target machine actively refused it 192.168.18.186:7884 at System.Net.sockets.TcpClient..ctor(String hostname,Int32 port) at WebSocketSharp.WebSocket.setClientStream() at WebSocketSharp.WebSocket.doHandshake() at WebSocketSharp.WebSocket.connect()
与我的代码有关的问题是什么?有什么好的websocket库可用吗?
解决方法
如果telnet可以连接,则客户端lib可能存在问题.实际上有一个内置于.NET中的Web套接字客户端,您应该可以使用它(ClientWebSocket
)
flask-socketio + vue-socket.io 组合使用 demo
manage.py
import datetime
import json
from flask_socketio import Namespace, emit, SocketIO, disconnect
from flask import Flask, render_template,request
app = Flask(__name__)
socketio = SocketIO(app,cors_allowed_origins="*")
class MyCustomNamespace(Namespace):
def __init__(self,namespace):
super(MyCustomNamespace, self).__init__(namespace)
self.sid = None
def on_connect(self):
self.sid = request.sid
print(''建立连接成功!-{}''.format(self.sid))
def on_disconnect(self):
print(''客户端断开连接!'')
def close_room(self, room):
socketio.close_room(room=self.sid)
print(''{}-断开连接''.format(self.sid))
def on_my_event(self, data):
while True:
print(data)
socketio.sleep(5)
current_date = str(datetime.datetime.now())
dic = {''current_date'': current_date}
res_json = json.dumps(dic)
emit(''server_response'', res_json)
socketio.on_namespace(MyCustomNamespace(''/test''))
if __name__ == ''__main__'':
socketio.run(app)
Vue 部分


<template>
<div>
<h1>websocket连接</h1>
</div>
</template>
<script>
export default{
data(){
return{
id:''''
}
},
sockets:{
// 通信的name
//这里是监听connect事件
connect: function(){
this.id=this.$socket.id
// alert(''建立连接'')
this.$socket.emit(''my_event'',9999)
},
disconnect: function(){
alert(''断开连接'')
},
reconnect: function(){
console.log(''重新连接'')
this.$socket.emit(''conect'')
},
server_response: function(data){
console.log(''接收数据'',data)
}
},
mounted(){
this.$socket.emit(''connect''); //在这里触发connect事件
}
}
</script>
<style>
</style>


// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from ''vue''
import App from ''./App''
import router from ''./router''
Vue.config.productionTip = false
// 引入socket.io
import VueSocketIO from ''vue-socket.io''
// 引入Mint-ui
// import MintUI from ''mint-ui''
// 安装插件
// Vue.use(MintUI); //里面其实做的就是注册所有的全局组件,给Vue.prototype 挂载一些对象,方便实用,组件内的this.xxx就可以使用了
// 引入css
// import ''mint-ui/lib/style.css''
Vue.use(new VueSocketIO({
debug: true,
connection: ''http://127.0.0.1:5000/test''
}))
/* eslint-disable no-new */
new Vue({
el: ''#app'',
router,
components: { App },
template: ''<App/>''
})
GET http:// localhost:3000 / socket.io / socket.io.js 404(未找到)
我正在尝试将数据流式传输到浏览器。但是,我正在努力将其连接到浏览器。这是我的html:
<ul></ul>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect();
jQuery(function ($) {
var tweetList = $('ul.tweets');
socket.on('tweet',function (data) {
tweetList .prepend('<li>' + data.user + ': ' + data.text + '</li>');
});
});
</script>
这是我的app.js的相关部分:
var express = require('express'),twitter = require('ntwitter'),http = require('http'),path = require('path');
var app = express();
var io = require('socket.io').listen(app);
app.get('/',function (req,res) { res.sendfile(__dirname + '/index.html'); });
app.listen(app.get('port'),function(){
console.log("Express server listening on port " + app.get('port'));
});
io.sockets.volatile.emit('tweets',{
user: data.user.screen_name,text: data.text,geo : geo,latitude: latitude,longitude: longitude
});
我通过packages.json文件安装了socket.io 0.9.16:
"dependencies": {
"express": "3.2.6","jade": "*","ntwitter":"0.2.10","socket.io":"0.9.x"
}
有谁可以帮我离开这里吗?为什么找不到文件?
深入挖掘。为了测试套接字,我将其放在app.js中:
var socket = io.listen(app);
我得到错误:
TypeError: Object #<Manager> has no method 'listen'
at Object.<anonymous> (/home/andy/dev/node/mytwittermap/app.js:49:17)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3
今天关于Socket.IO-需求未定义和需求定义错误的讲解已经结束,谢谢您的阅读,如果想了解更多关于boost::asio 序列16: tcp::socket 和 udp::socket & socket_basic、c# – System.Net.Sockets.SocketException创建websocket连接时、flask-socketio + vue-socket.io 组合使用 demo、GET http:// localhost:3000 / socket.io / socket.io.js 404(未找到)的相关知识,请在本站搜索。
本文标签: